This is the back-end server of the project that handles request from both the student-end interface and teacher-end interface for office hour queuing app.
A couple of things I learned from this project:
- How to use socket.io to create a real-time communication between the server and client
- How to create a REST API using Express using TypeScript
- How to organize the codespace using the Model Router Controller (MRC) pattern
- How to set up a testing environment using Jest + Supertest + MongoDB-memory-server
- How to create a dockerized app
- How to set up EC2 instance on AWS
- How to use custom middleware to handle error
- How to write robust API documentation using Notion
- How to set up JSON Web Token (JWT) for authentication
- How to use Ngrok to expose the local server to the public
- How to set up a HTTPS server using self-signed certificate
- How to use Zod to validate the request body
- How to write a yml file to run the Github Action for test automation
- How to use eslint and prettier to format the code
- Better understanding of the Docker, Dockerfile