Report a Bug or Request a Feature · Live Demo
This project follows the business requirements layout on here. From these requirements, this app adapts the following workflow:
- The user logs into the app by registering with their username, email and password
- The user is presented with a list of services where more information can be viewed for each service
- The user selects a service and access to the service details page
- On the service detail page, the user can decide to reserve an appointment to service their car: the user has to select a date, time and add a description if necessary
- There is a page to check the list of appointments of the user
- You may toggle dark mode if you wish 😃
This app was built using the Ionic React framework therefore the app is fully respoinsive but works best on mobile.
The Ruby on Rails back-end was built using Rails with 3 models:
- Users Model
- Appointments Model
- Services Model
The app makes API requests while the user interacts with the app in order to retrieve the relevant information. The services database has been seeded with the various services since these services are assumed to be a finite number.
- TypeScript
- React.js
- Redux
- Ionic Framwork
- JWT
- React Hook Form
- Jest
- Moment.js
- Eslint
- Webpack
Users can:
- register and login to the account
- view list of services items and learn more about each service
- book a service on the service details page or by using the link in the side menu
- view their booking by navigating to the Appointment tab in the menu
- toggle dark mode in the menu
To run the app locally, clone the repository and navigate to it's directory:
https://github.com/Azeem838/vehicle-service-booking.git
cd vehicle-service-booking
git checkout front-end-store
npm install
ionic-serve
Now go to localhost:8100 in your browser.
The app was test with jest, redux-mock-store and react-testing-library.
npm run test
- Implemented proper user authentication from the front-end to the server
- Created a user table in the database, so that a given user can only access the appointments that they created
- Made the app responsive, created both tablet and desktop versions, following design guidelines
- Transitions were implemented to make the user experience better
- Created full documentation for the API
- Dark Mode via toggle
- More services and details
- Uses will be able to chat with their mechanic
- Payment functionality
- Email notification to remind the the users on their next service
- An admin panel to add services, specials
👤 Azeem Ahmed
- Github: @Azeem838
- LinkedIn: Azeem Ahmed
Give a ⭐️ if you like this project!
Design influenced by Murat Korkmaz on Behance
This project is MIT licensed.