Wheely
This is my final project and my first Full Stack project, done at the Skylab Bootcamp. The idea arises from a real need in driving schools to speed up the task of booking practices. This way, both students and teachers can carry out the task 100% online, as well as student monitoring, controlling available credits, etc.
Features
- Students, teachers and administration staff have accounts with different functionalities.
- Student:
- Can consult and modify his personal data and available credits.
- Can book practices with any teacher, day and time.
- Can cancel a reservation 24 hours in advance.
- Both teacher and student receive a confirmation email with every practice booking or cancellation.
- Can consult his pending reservations and completed practices.
- Can compare his progress with the teachers' evaluation.
- Account for testing: ana@ana.com // password: 123.
- Instructor:
- Can consult and modify his personal data.
- Can check and sort his reservations.
- After every practice, the teacher gives an evaluation to the student.
- Can consult but not change his work schedule.
- Account for testing: toni@toni.com // password: 123.
- Administrator:
- Can add, modify, consult and delete any user.
- Can add credit to students.
- Can manage and edit each teacher's work schedule.
- Can access all bookings made.
- Can see the progression of all the students. Account for testing: admin@admin.com // password: 123.
What I learned
- How to develop a back-end with Node Express.
- How to group all the routes on a router.
- How to link a database with MongoDB and schematize it with Mongoose.
- How to use React Hooks in the front-end.
- How to perform TDD tests in the back-end with Mocha Chai and in the front-end with Jest.
- How to send emails using the Nodemailer library.
- How to handle reservations, cancellations, and real-time calendars with Moment.
- How to emulate a credit-based payment service.
- How to display a hamburger menu on mobile devices.
- How to connect the front-end with the back-end deployed to production.
- How to write technical and functional documentation.
- How to stick to the contract, deadlines (2 and a half weeks), handling expectations, stress management and prioritization.
- How to present the project in public.
Technologies
- Front-end: React Hooks (JavaScript), CSS-SASS, Mocha Chai
- Back-end: Node with Express, MongoDB, test with Jest