Skip to content

Providing a fast and user-friendly interface for students to view available subjects, see their details, and make selections.

License

Notifications You must be signed in to change notification settings

bodin2/electives

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

22 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Bodindecha 2 Electives

A system for managing elective subjects at Bodindecha (Sing Singhaseni) 2 School.

Why?

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.

Issues with the previous system

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.

How are we solving it?

We built a new system using ElysiaJS, Protocol Buffers, and Drizzle ORM with SQLite, with a fully client-sided frontend built with SolidStart.

Backend

  • 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.

Frontend

  • 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.

License

This project is licensed under CC BY-NC-SA 4.0.

About

Providing a fast and user-friendly interface for students to view available subjects, see their details, and make selections.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published