/Full_Stack_Capstone_Back_End

Experience streamlined car management and reservations with our React and Rails web app, allowing admins to effortlessly handle inventory while users reserve cars by model, city, and time.

Primary LanguageRubyMIT LicenseMIT

Full_Stack_Capstone_Back_End

📗 Table of Contents

📖 Car Reservation App

The project is based on an app to book an appointment to try a motorcycle. and follow the given design of the website but with personalized content for making a car reservation app, this is the project back-end, it's used as an API for the front-end found here.

Kanban board

This project is made up of 5 participants.

@JavierAybar

@Gh-Reza

@Abdelaziz-Mahdi

@Marcraphael12

@everinurmind

🚀 Live Demo

(back to top)

### Tech Stack
Client
Server
Database

Key Features

  • The user logs in to the website by typing the Email and Password.

  • In the navigation panel, the user can see links to:

  • "Items list".

  • "Reserve" form.

  • "My reservations".

  • "Add items".

  • "Delete items" (the link is visible to everybody).

  • On the main page, the user can see a list of motorcycles/doctors/classes/items that you selected as a theme. List

  • When the user selects a specific item, they can see the details page with its full description.

  • On the details page, the user can click the "Reserve" button.

  • When the user clicks the "Add item" link in the navigation panel they can see a form for adding a new item.

  • Make the app responsive, creating both mobile and desktop versions.

  • When the user clicks the "Delete item" link in the navigation panel they can see a list of all items with title and "Delete" button.

  • When the user clicks the "Delete" button, the selected item is marked as removed and does not show on the main list anymore.

  • To reserve an appointment, the user has to select a date and city (username and selected item are auto-filled).

  • Have all necessary inputs.

  • The user can access the "Reserve" page from the navigation panel. In that case, only the username is auto-filled.

  • When the user clicks the "My reservations" link in the navigation panel they can see a list of their reservations (with information about item name, date, and city).

  • Have full documentation for the API.

  • Implement proper user authentication from the front end to the server.

  • The "Add item" and "Delete item" links are accessible only by users who are admins.

(back to top)

💻 Getting Started

Diagram

See The ERD diagram

To get a local copy up and running, follow these steps.

Install

Install this project with:

  bundle install

Setup Database by running these commands:

  1. Remove config/master.key and config/credentials.yml.enc if they exist.
rm config/master.key config/credentials.yml.enc
  1. Run in the terminal:
EDITOR=code rails credentials:edit 
  1. Close the editor that opens.
  2. This command will create a new master.key and credentials.yml.enc if they do not exist.
  rails db:create
  rails db:migrate

Usage

To run the project, execute the following command:

  rails server

Linters

Use this command to fix Rubocop Linter Errors:

  rubocop -A

Use this command to fix Stylelint Errors:

  npx stylelint "**/*.{css,scss}" --fix

👥 Authors

👤 Javier Aybar

👤 Marc Raphael

👤 Reza Merzaie

👨🏼‍🚀 Abdelaziz Mahdi 🐱‍👤

👤 Nurbol Sultanov

(back to top)

🔭 Future Features

  • Add about page.

(back to top)

🤝 Contributing

Contributions, issues, and feature requests are welcome!

Feel free to check the issues page.

(back to top)

🙏 Acknowledgments

Vespa - Responsive Redesign by Murat Korkmaz

(back to top)

📝 License

This project is MIT licensed.

(back to top)