A system for managing elective subjects at Bodindecha (Sing Singhaseni) 2 School.
This project aims to improve the existing Electives system at Bodindecha (Sing Singhaseni) 2 School. Providing a fast and user-friendly interface for students to view available subjects, see their details, and make selections.
The previous system was very slow, being server-rendered by PHP on a mid-to-low-end server. This caused frequent timeouts and freezes when thousands of students tried to access the system at the same time.
There are also other issues, such as students not being to view details of subjects before the registration period, or subjects having overflowing student counts, needing manual intervention by teachers to resolve such conflicts.
We built a new system using ElysiaJS, Protocol Buffers, and Drizzle ORM with SQLite, with a fully client-sided frontend built with SolidStart.
- Using ElysiaJS allows us to create a fast and lightweight server that can handle high loads of traffic in a short amount of time.
- Protocol Buffers provide a compact binary format for data exchange, making it efficient to send and receive data between the server and clients.
- SQLite allows us to manage data efficiently, ensuring that data is stored and retrieved quickly.
We are using Bun SQLite with Drizzle ORM, which binds fully-typed database schemas to Bun's high-performance native SQLite3 driver. - Running it all with Bun, a fast all-in-one JavaScript runtime & toolkit, allows us to run the server with very high performance, suitable for handling hundreds of requests per second.
- Built with SolidStart, fully client-sided. We provide a small-sized, responsive, and interactive user interface for students to view and select subjects easier and faster.
Being fully client-sided also means the frontend can be cached through services like Cloudflare to prevent downtime from too many requests hitting the server at once!
Serving a lot of content was one of the issues with the previous system, so we are now serving it through Cloudflare instead, which is fast and reliable.
This project is licensed under CC BY-NC-SA 4.0.