Mini Project1
Mini Project1
Submitted by
Darshith L (U03NM21T029008)
Payal S (U03NM21T029039)
Under the guidance of
Mr. Suman
Research Scholar
Department of Computer Science,
UVCE
June - 2024
BANGALORE UNIVERSITY
BANGALORE UNIVERSITY
CERTIFICATE
Examiner:
1. ……………………. 2. …………………….
ACKNOWLEDGEMENT
I would like to thank Dr.Paul S Vizhian , Principal, UVCE, for providing us all the
facilities to work on this project. I am indebted to him for being my pillar of strength and
inspiration.
Darshith L
(U03NM21T029008)
Abstract
CRMS provides a user-friendly interface where customers can browse available cars,
check rental rates, and make reservations. The system includes features for user
registration, authentication, and profile management, ensuring secure and personalized
user experiences. Administrators have access to a comprehensive dashboard to manage
car listings, rental transactions, and customer inquiries, allowing for efficient oversight
and maintenance of rental operations.
Key functionalities of the system include real-time car availability tracking, dynamic
pricing based on rental duration, and detailed rental history records. The integration of
Django's ORM (Object-Relational Mapping) facilitates seamless database interactions,
while HTML and CSS ensure a responsive and intuitive user interface.
This project demonstrates the practical application of DBMS concepts such as relational
database design, data normalization, and query optimization. Through the
development of CRMS, we have achieved a scalable and maintainable solution that
addresses the complexities of car rental management, providing valuable insights into the
development and deployment of database-driven web applications.
TABLE OF CONTENTS
CHAPTER 1
INTRODUCTION
1.1 Overview
A Car Rental Management System (CRMS) is a sophisticated software solution
designed to streamline and optimize the operations of car rental services. This
system features an intuitive user interface and a responsive design, ensuring
seamless access across various devices for administrators, staff, and customers. It
includes a comprehensive customer management module that maintains detailed
profiles, tracks rental history, and provides secure authentication and support
through integrated helpdesk features. The vehicle management component
maintains an exhaustive database of the fleet, including specifications, availability,
and maintenance schedules, ensuring vehicles are well-maintained and ready for
rental. The reservation and booking system allows customers to easily browse
available vehicles, make reservations, and manage their bookings online, supported
by real-time updates on vehicle availability. Additionally, the system offers
advanced billing and invoicing capabilities, generating accurate invoices,
processing payments securely, and handling various pricing models and discounts.
Robust reporting and analytics tools provide valuable insights into business
performance, customer behavior, and operational efficiency, aiding in strategic
decision-making. Integrated marketing tools help attract and retain customers
through promotional campaigns and loyalty programs. With stringent security
measures to protect sensitive data and ensure regulatory compliance, the CRMS
enhances operational efficiency, improves customer satisfaction, and drives
business growth.
The DBMS manages three important things: the data, the database
engine that allows data to be accessed, locked and modified, and the database
schema, which defines the database’s logical structure. These three
foundational elements help to provide concurrency, security, data integrity and
uniform administration procedures. Typical database administration tasks
supported by the DBMS include change management, performance
monitoring/tuning and backup and recovery. Many database management
systems are also responsible for automated rollbacks, restarts and recovery as
well as the logging and auditing of active.
➢ Self-describing nature.
1.3 MySQL
1.3.1 CREATE:
This command is used to create a table or view by giving it a name and
specifying its attributes and constraints. The attributes are specified first,
and each attribute is given a name, a data type to specify its domain values,
and any attribute constraints such as NOT NULL.
SYNTAX: CREATE TABLE <TNAME> (ATR1 TYP1 CONST1,
ATR2 TYP2 CONST2, …)
1.3.2 ALTER:
The definition of a base table can be altered by ALTER command which is
a Schema Evolution command. The possible ALTER TABLE includes
adding or dropping a column (attribute), changing a column definition, and
adding or dropping table constraints.
SYNTAX: ALTER TABLE STUDENT ADD NAME VARCHAR (12)
1.3.3 DROP:
If a whole schema is not needed any more, the DROP SCHEMA command
can be used. There are two drop behavior options: CASCADE and
RESTRICT.
CASCADE option is used to remove the database schema and all its tables,
domains and other elements. If the RESTRICT option is chosen in place of
CASCADE, the schema is dropped only it has no elements in it; otherwise,
the DROP command will not be executed.
SYNTAX: DROP TABLE STUDENT CASCADE
CHAPTER 2
LITERATURE REVIEW
2.1.1 SQL:
Structured Query Language, abbreviated as SQL, is a domain-specific
language used in programming and designed for managing data held in a
relational database management system (RDBMS), or for stream
processing in a relational data stream management system (RDSMS). It is
particularly useful in handling structured data, i.e. data incorporating
relations among entities and variables
2.1.2 HTML:
The Hypertext Markup Language or HTML is the standard markup
language for documents designed to be displayed in a web browser. It can
be assisted by technologies such as Cascading Style Sheets (CSS) and
scripting languages such as JavaScript.
Web browsers receive HTML documents from a web server or from
local storage and render the documents into multimedia web pages.
HTML describes the structure of a web page semantically and originally
included cues for the appearance of the document.
HTML elements are the building blocks of HTML pages. With HTML
constructs, images and other objects such as interactive forms may be
embedded into the rendered page. HTML provides a means to create
structured documents by denoting structural semantics for text such as
headings, paragraphs, lists, links, quotes, and other items.
2.1.3 CSS:
Cascading Style Sheets (CSS) is a style sheet language used for
describing the presentation of a document written in a markup language
such as HTML or XML (including XML dialects such as SVG, MathML
or XHTML). CSS is a cornerstone technology the World Wide Web,
alongside HTML and JavaScript.
CSS is designed to enable the separation of content and
presentation,including layout, colors, and fonts. This separation can
improve content accessibility; provide more flexibility and control in the
specification of presentation characteristics; enable multiple web pages to
share formatting by specifying the relevant CSS in a separate .CSS
file,which reduces complexity and repetition in the structural content; and
enable the .CSS file to be cached to improve the page load speed between
the pages that share the file and its formatting.
Separation of formatting and content also makes it feasible to
present the same markup page in different styles for different rendering
methods, such as on-screen, in print, by voice.
2.1.4 Django:
Django's scalability and extensibility make it suitable for projects ranging from
content management systems and e-commerce platforms to data-driven
applications and beyond. Supported by a vibrant community and
Java script is used for styling and internal calculations and manipulation
purposes.
CHAPTER 3
PROPOSED WORK
● Entities
● Relationships
● Attributes
Agency:
Agency_name GST Agency_id Primary number Secondary Number
Agency_Location
Agency_id Location_id State District Locality Pincode
Customer:
fname mname lname Email Customer_id Phone_Number Sex DOB
car_models
model_id Manufacturer Model Variant no_of_seats Type fuel
Car
Car_id Reg_id Owner_name Colo Per_KM condition_of_c model_deta location
r _Charge ar ils
reviews
Car_id Customer_id text
Description
Car_id Description
Review of car
Review_id Car_id Text
Booking
Booking_i Customer_i Car_id From_Dat To_Date total_Price Payment_Details
d d e
3.3 NORMALIZATION
Normalization is a database design technique that reduces data redundancy
and eliminates undesirable characteristics like Insertion, Update and
Deletion Anomalies.
Normalization rules divides larger tables into smaller tables and
links them using relationships. Normalization of data can be looked upon
as a process of analysing the given relation schemas based on their
Functional Dependencies and primary keys to achieve the desirable
properties of:
● Minimizing redundancy.
● Minimizing the insertion, deletion, and update anomalies
It states that the domain of attribute must include only atomic be values and
that the value of any attribute in a tuple must be a single value from the
domain of the attribute. Hence 1NF disallows having a set of values a tuple
of values or a combination of both as an attribute value for a single tuple.
Customer Table
Agency Table
number
number
Admin Table
Car_models Table
Car Table
model
Booking Details
Description
Reviews
The database design of the Car Rental Management System strictly adheres to the
principles of Third Normal Form (3NF) to ensure data integrity and minimize
redundancy. This normalization process involves structuring the database in a way
that all tables comply with 3NF requirements, thereby optimizing the efficiency of
data storage and retrieval.
CHAPTER 4
RESULTS AND SCREENSHOTS
CHAPTER 5
CONCLUSION
The development of the Car Rental Management System (CRMS) as a DBMS lab
mini-project has been an invaluable learning experience, covering a wide range of
skills and knowledge areas. Throughout this project, several key concepts and
techniques were mastered, contributing significantly to our understanding of web
development and database management.
5. Version Control and Collaboration: Using Git for version control taught us the
importance of tracking changes and managing different versions of the codebase.
This practice is essential for collaboration and maintaining the integrity of the
project throughout its development lifecycle.
CHAPTER 6
BIBLIOGRAPHY
[6] Stack Overflow, Official documentation of MySQL for trouble shooting and
debbuging.