Skip to content

Latest commit

 

History

History
220 lines (162 loc) · 8.15 KB

README.md

File metadata and controls

220 lines (162 loc) · 8.15 KB

Car Rental System

Car Rental Internal Booking System created using Odoo framework

Table of Contents

 

General Information

  • Car Rental System is a simple internal car booking system.
  • Technical assignment requested by Leading Point Software for practicing the Odoo framework after finishing the first 8 chapters from Odoo 14 Development Cookbook - Fourth Edition book.

Task Description

Car Rental System

Build a simple internal (not a website) car booking system using Odoo with basic functionalities mentioned below:

  1. We will have two kinds of users (groups): managers (have full access - CRUD, and normal users (read-only and can reserve cars).
  2. Simple page showing list of available cars to be rented.
  3. In car list, user can select car and open a form view to show car details.
  4. In form view: show car info and offer a reserve button to reserve the car.
  5. Reserve button will record the reserved car, user who did the reservation, and reservation date.
  6. From user form view, we need to have a smart button to show the list of reserved cars. Users can do unreserve (store return date).
  7. Managers can create, edit, mark cars as damaged, reserve, and unreserve cars (store return date).
  8. We will have three states for the car: Available, Rented, and Damaged.
  9. Create a page to list all reservation history for each car, the result should be grouped by car, list will have car name, username, state, and date.
  10. Workflow for return car (second approval).

 

Technologies Used

 

Features

  • User can explore the available cars for rent, and see all the car details like name, price, ..etc.

  • User can reserve the available cars.


  • User can explore all his reservation history.

  • User can request to unreserve car.


  • Manager user can create, update, delete the cars.



  • Manager user can reserve the cars to users.


  • Manager user can explore all reservation history for all cars and users.


  • Manager user can unreserve the rented cars.


  • Manager user can mark the car as damaged, which will not be available for rent, and vice versa.

 

Demo Videos

Normal User Features


Manager User Features


 

Setup

# Initialize a Virtual Environment
$ virtualenv -p python3 car_rental_system
$ cd car_rental_system
$ source bin/activate

# If you don't have Odoo 15 installed on your device
$ git clone --branch 15.0 --single-branch --depth 1 [email protected]:odoo/odoo.git
$ pip3 install -r odoo/requirements.txt
$ sudo npm install -g rtlcss

# Clone the Repo
$ git clone [email protected]:yahiaqous/Car-Rental-System.git src
$ cd src
$ ../odoo/odoo-bin -d cardb --addons-path=../odoo/addons,. -i car_rental_system --dev all --db-filter '.*'

Then open your browser on http://localhost:8069 to see the result.

 

Features to be Added

  • Hide the duplicated borrower field in the "Reserve a Car" wizard for the manager form.
  • Display notifications when request to unreserve a car.
  • Create Dark mode button.

 

Acknowledgements

  • This project was inspired and requested by Leading Point Software.
  • This Odoo 14 Development Cookbook - Fourth Edition book which is a complete source that explains Odoo concepts.
  • This Tutorial helped me how to add a smart button.
  • This Answer helped me how to make a field not editable by user.
  • This Answer helped me how to filter records for tree view based on logged in user.
  • This Answer helped me how to make buttons invisible based on a condition.
  • This Answer helped me how to make a button call function from another module in xml.
  • This Answer helped me how to get the current logged in user.
  • This Answer helped me how to set a domain for a view.

 

Contact

Created by Yahia Qous - feel free to contact me!