Skip to content

blaine-t/studors

Repository files navigation

Studors

A web service that allows for students to get in contact with volunteer student tutors

Contributors

Leader and sole developer, Blaine Traudt

Web Design courtesy of Grant Gardner

Logo used by permission from Louis Quattrocchi under the CC BY-NC 3.0 License

Features

  • Zero-knowledge password support via Google OAuth 2.0

  • Extremely lightweight network requirements

  • Small development stack ensuring responsive web pages with no bloat

  • Responsive design no matter what device or orientation Example

  • Fully featured admin panel tailored towards newbies all the way to power users

  • Automated weekly schedule pushes

  • Intelligent matching of students with tutors based on time and subject

  • Easy to manage availability schedules for tutors

Powered By

  • Node.js is the runtime I decided to use for this project. I debated using Bun but I wanted to have a more established runtime since I expect this project to be deployed with little to maintenance after deployment.
  • Typescript - Most if not all of the backend code is written in typescript. TS was chosen over javascript because for a complex project ensuring that types remained consistent throughout was crucial to having less error prone code. While it was a decent learning curve it definitely made development easier especially towards the end.
  • PostgreSQL I decided on Postgres for most of the same reasons I chose Node. It is a well established relational SQL database that I think will stand the test of time and was really nice to use in this project.
  • Express.js was used as the minimalist web framework for studors. It gave me low enough capabilities without going too low that it was hard to develop with.
  • Passport.js allowed for quick and easy OAuth with Google. While it was a bit confusing to use at first and led to some less than ideal code in the end it made it so Studors could be zero-knowledge when it came to user credentials.
  • JQuery while underutilized in Studors because it came in to the stack late still made using other js libraries miles easier.
  • DataTables made making sortable and tabulated tables way easier than native HTML I was trying to wrangle before I brought it in to the stack
  • pickadate.js made intuitive calendars easier to create and more user friendly.
  • date-fns was the last module to be added but allowed me to clean up code and make date manipulation easier to read and safer.

Installation

Installation of Studors is easy with Docker!

Instructions here

License

Studors is licensed under the GNU General Public License V3

License: GPL v3

About

A web service that allows for students to get in contact with volunteer student tutors

Resources

License

Stars

Watchers

Forks

Packages

No packages published