Welcome to our Car Catalog and Reservation System, developed as part of the SOEN 341: Software Process course. This web application is designed to provide users, particularly travelers and individuals in urgent need of a vehicle in Canada, with a seamless and convenient experience in selecting, reserving, and managing their vehicle rentals.
Quality Assurance/Testing: Benjamin Ho - 40249917 - [bxnjiho], Backend Developer: Samuel Henderson - 40248526 - [samjamhen], DevOps Engineer: Ikram Kamal - 40248477 - [ikramkamal], Frontend Developer: Uyi Oronsaye - 40089481 - [OGHO-SAYE], Scrun Master: Yasmine Mouatif - 40249967 - [y-mouatif], Project manager: Hanine Tydrini - 40226729 - [7anine]
Our system revolves around a comprehensive car catalog database, encompassing various categories such as compact, standard, intermediate, etc. Key attributes include:
- Category (e.g., compact, standard, intermediate)
- Type (Car, Van, SUV, etc)
- Brand
- Model
- Year
- Price
1. Selection Process:
- Users can choose their preferred vehicle from the catalog, specifying pickup address and time.
- Prompted to either log in or create a new account to proceed with the reservation.
2. Reservation Completion:
- After selecting a vehicle, users are guided through the reservation process.
- Collect user information and ask for login or account creation. Request pickup address, time, and vehicle details.
3. Payment Process:
- Upon completing the reservation, users are prompted for credit card information.
- Payment policies, such as partial payment or full payment, are to be determined.
4. Confirmation:
- Display completed reservations for users to review.
- Send email confirmations to users with reservation details.
5. Modification and Cancellation:
- Implement policies for modifying or canceling reservations (details to be determined).
6. Feedback System:
- Allow users to add comments and ratings for the rented vehicles.
The project is developed using the MERN stack:
- MongoDB: Database
- Express.js: Backend framework
- React: Frontend library
- Node.js: Backend runtime
Our web application caters to travelers and individuals in urgent need of a vehicle in Canada. By enabling users to freely choose pickup locations, booking dates, and vehicle types, we aim to enhance their experience and provide a user-friendly platform for renting vehicles.
We strive to follow the established rules and guidelines we've collectively devised to ensure our workflow operates efficiently. For a detailed overview of our guidelines, please consult our GitHub Wiki.
- Clone the repository.
- If you haven't already, download and install Node.js from nodejs.org.
- Install dependencies using
npm install
in both the client and server directories. - Set up the MongoDB database.
- Run the server using
npm run dev
in the server directory. - Run the client using
npm start
in the client directory.
- Use the navigation and user interface provided to browse the car catalog, select vehicles, and make reservations.
- Follow the prompts for logging in or creating a new account to complete a reservation.
- Review completed reservations, modify or cancel as needed, and provide feedback on rented vehicles.
If you encounter any issues or have suggestions for improvement,reach out to any of the team members mentioned above. Feel free to explore the project!
In order to properly test the functionality of the webpage, we have created access codes for the System Administrator and Customer Service Representative portals. Use these accounts to log in. Note that for security reasons, as the login page is visible to all users including customers, there is no way to register as a CSR or Admin and access these functionalities if the passcodes for accounts have not been previously provided to you.
-
Customer Service Representative EMAIL : [email protected] PASSWORD: Password123!
-
System Administrator EMAIL : [email protected] PASSWORD : Qazwsxedc1!
Also, the mock credit cards are part of the database. Hence, only these can be used for booking reservations. Please note that the Mastercard's balance is purposefully low so that tests can be made for accounts that would not have the sufficient funds to make a reservation. It will be rejected during the check-in process.
-
Visa 1 NUMBER: 4567123456789012 CVV: 123 EXPIRATION DATE: 12/26
-
Visa 2 NUMBER: 4111111111111111 CVV: 123 EXPIRATION DATE: 08/26
-
Mastercard NUMBER: 5432987654321098 CVV: 456 EXPIRATION DATE: 09/25
Tap link here to get access to our full demo where we showcase the core features.