Misc is a site for miscellaneous freelance services, i.e. people can post whatever service they offer and users can book them. This week, I added the function of making both service provider and user accounts. Users can't use the site without logging in, which is enforced through a loggedin cookie that is true if the user is logged in. I made two separate account pages for each type of account. The service provider sees all of their requested bookings and has the option to accept or decline each booking. If the service provider clicks decline, then the booking disappears from their page. On the user account side, they see all the bookings they've requested. If the request is not accepted, the label is set to not accepted. If the service provider accepts, then the label is set to accepted and a button appears allowing the user to rate their experience. Users can rate their experience out of 5, and after the rating is submitted, the button disappears so the user cannot rate this booking again. I average the rating for each service provider and display it on the hiring page. I also worked on deploying this site on fly.io and setting up/connecting a fly.io PostgreSQL database.
This web app uses express.js, Bootstrap to format and style the frontend, and a PostgreSQL database to store user data and bookings (there is a user table and a hire tables). I spent 6 hours on this project.
This web app is deployed using fly.io and can be found here: https://actorhire-thrumming-firefly-6476.fly.dev/. A short video demo is also here: https://youtu.be/qa88Ow_Wma0.