en / es / ca / de

Wheely

Main picture of the project.

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.

Source code

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