Car Rental Internal Booking System created using Odoo framework
- 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.
Car Rental System
Build a simple internal (not a website) car booking system using Odoo with basic functionalities mentioned below:
- We will have two kinds of users (groups): managers (have full access - CRUD, and normal users (read-only and can reserve cars).
- Simple page showing list of available cars to be rented.
- In car list, user can select car and open a form view to show car details.
- In form view: show car info and offer a reserve button to reserve the car.
- Reserve button will record the reserved car, user who did the reservation, and reservation date.
- 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).
- Managers can create, edit, mark cars as damaged, reserve, and unreserve cars (store return date).
- We will have three states for the car: Available, Rented, and Damaged.
- 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.
- Workflow for return car (second approval).
- Odoo Framework | An Open Source ERP and CRM.
- 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.
# 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.
- 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.
- 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.
Created by Yahia Qous - feel free to contact me!