3.6 KiB
author, categories, date, image, tags, title
author | categories | date | image | tags | title | ||
---|---|---|---|---|---|---|---|
mikeconrad |
|
2023-05-21T16:07:50Z | /wp-content/uploads/2024/03/hilger-portal-home.webp |
|
Hilger Grading Portal |
Back around 2014 I took on my first freelance development project for a Homeschool Co-op here in Chattanooga called Hilger Higher Learning. The problem that they were trying to solve involved managing grades and report cards for their students. In the past, they had a developer build a rudimentary web application that would allow them to enter grades for students, however it lacked any sort of concurrency meaning that if two teachers were making changes to the same student at the same time, teacher b’s changes would overwrite teacher a’s changes. This was obviously a huge headache.
I built out the first version of the app using PHP and HTML, CSS and Datatables with lots of jQuery sprinkled in. I built in custom functionality that allowed them to easily compile and print all the report cards for all students with the simple click of a button. It was a game changer or them and streamlined the process significantly.
That system was in production for 5 years or so with minimal updates and maintance. I recently rebuilt it using React and ChakraUI on the frontend and KeystoneJS on the backend. I also modernized the deployment by building Docker images for the frontend/backend. I actually ended up keeping parts of it in PHP due to the fact that I couldn’t find a JavaScript library that would solve the challenges I had. Here are some screenshots of it in action:
This is the page listing all teachers in the system and whether or not they have admin privileges. Any admin user can grant other admin users this privilege. There is also a button to send the teacher a password reset email (via Postmark API integration) and an option that allows admin users to impersonate other users for troubleshooting and diagnostic purposes.
Technologies used
- Digital Ocean Droplet (Server) – Ubuntu Server
- Docker (Frontend, Backend, PHP, Postgresql database)
- Git
- NodeJS
- PHP
- ChakraUI
- KeystoneJS
- Postmark
- GraphQL
- Typescript
- React
- urql