You are on page 1of 47

University Community College

GC University, Faisalabad.
Automobile Accountant

Abstract
This is a live project which was developed for a local CAR Agent.
It is useful to the Agent to maintain the Customers details, Sales Details, Company
items and services and also CAR Details. If any customer buy a CAR in loan that
persons CAR will recognizes with the help of CAR no.CAR Recognition System,
which will cover the following modules The agent will enter the CAR No It will
help the user to search the CAR details and the required details of the customer
.The agent enters the customer details and maintain company details.Regarding the
registration module, it contains the information about newly joined User details
like name of the user, password etc. CAR Details module contains the details like
Name of the CAR, send from, send to etc. Billing and Payment Detail will contain
the details like Actual Amount to be paid, emi. Searching is having the details of
the customer. Any agent will login and search the details of the customer it will
show all details like customer Details, CAR name, payment type etc.This
“Automobile Accountant” project mainly contains the CAR information and loan
recovering details. The CAR is purchased that CAR amount will be cleared or not.
It will clear then its ok. Other wise the agent will search the details of the customer
and recover the loan.
CHAPTER-1

SOFTWARE REQUIREMENT SPECIFICATION

1. Introduction
2. Stakeholders
3. Users of the system
4. Functional Requirements
a. List of Functional Requirements
b. Description of each requirement in Requirement Shell
5. Nonfunctional Requirements
6. Schedule of Project

CHAPTER-2

ANALYSIS

1. Use Case Model


a. Description of Each use case in fully dressed format
2. System Sequence Diagram (SSD) of each use case
3. Domain Model

CHAPTER-3

DESIGN

1. Design Class Diagram


2. Entity Relationship Diagram (ERD)
3. Sequence Diagrams of each SSD

CHAPTER-4

Implementation

1. Code/Algorithm of Main scenarios and Main units of systems

CHAPTER-5

Testing
1. Test Cases

GLOSSARY
CHAPTER-1

SOFTWARE REQUIREMENT SPECIFICATION


Introduction

The existing tools do not consider all the factors that affect a project directly.
The entire process is built upon using just one or two parameters which do not give
us complete and desired results. So we need a system where we can deliver the
correct results that would ultimately lead to a position where the overall cost and
time will be consolidated. . No specific training is required for the distributors to
use this application. They can easily use the tool that decreases manual hours
spending for normal things and hence increases the performance. It is very easy to
record the information of online sales and purchases in the databases Firstly, the
customers or the users need to sign up for the system before ordering the cars.
Secondly, the can login with their email and password that the entered. They can
see the list of cars according to their brands. If they like it they can book cars. After
that admin will see the orders and provide them if they had. Admin has the
authority to add new cars. The administrator can see all the orders done by the
customers with the car Model, customer id and name and also the date that they
order.

Stakeholders

• Management officer (Admin)


• General Public (USER)
Users of the system

• Management officer (Admin)


• General Public (USER)

System Model
All the facts and figures related to a car of each model is present in this module & the viewer
can view this module after login into the system. New car details and existing car details are
added into this module. Lists of all the cars are available inside this module.All the details of the
company are added into the module. Along with the existing details, new details are also added
into this module about the company and various new companies are being updated by the
admin of the system, frequently. Via this module, the user or customer of this system can book
the cars for them. If they are not willing to book the car, then they can atleast book a test drive
for themselves. All the previous booking details are available through this module. Admin can
update the details as per the need. This module is designed specifically for the customers. They
can login into the system after getting their credentials. This module keep track of each and
every customer and all the information related to each customer is being added into this
module. This module is updated timely by the admin of this system.
Functional Requirments

As can be seen in the system model diagramed above, each of the three system components
essentially provides a layer of isolation between the end user and the database. The motivation
behind this isolation is twofold. Firstly, allowing the end user to interact with the system through
a rich interface provide a much more enjoyable user experience, particularly for the non-
technical users which will account for the majority of the system’s users. In addition, this
isolation layer also protects the integrity of the database by preventing users from taking any
action outside those which the system is designed to handle. Because of this design pattern, it is
essential to enumerate exactly which functions a user will be presented and these functions are
outlined below, grouped by component.

Car order system

 Login/logout
 Can review brands of cars
 Can review the cars of specific brand
 Can see the details of specific brand
 Can order the car of specific brand

Admin

 Login/logout
 Can see the cars currently available in showroom
 Can add more cars
 Can review orders
 Can add new brand
Requirement Name: User Login

Requirement #: Req02 Requirement Type: Functional

This requirement enables Users to login into the specified


Description: panel or system. For login user should have username and
password which allowed by Admin.

Rationale: To login into the system

Originator: Registered User

Fit Criterion: For login into the system.

Customer 8 Customer 2
Satisfaction: Dissatisfaction:

Priority: 2 Conflicts: Nil

Supporting Materials: NA

History: NILL
Table1.2:User Login
Requirement Name: Can review brands of cars

Requirement #: Req06 Requirement Type: Functional


This requirement enables the user Can review brands of cars.
Description:
.

Rationale: Can review brands of cars

Originator: User

When requested
Fit Criterion:

Customer Customer
7 3
Satisfaction: Dissatisfaction:

Priority: 3 Conflicts: Nil

Supporting
NA
Materials:

History: NILL

Table : Can review brands of cars


Requirement Name : Can review the cars of specific brand

Requirement #: Req06 Requirement Type: Functional


This requirement enables the user Can review the cars of specific brand
Description:
.

Rationale: Can review the cars of specific brand

Originator: User

When requested
Fit Criterion:

Customer Customer
7 3
Satisfaction: Dissatisfaction:

Priority: 3 Conflicts: Nil

Supporting
NA
Materials:

History: NILL

Table : Can review the cars of specific brand

Requirement Name : Can see the details of specific brand


Requirement #: Req06 Requirement Type: Functional
This requirement enables the user Can see the details of specific brand
Description:
.

Rationale: Can see the details of specific brand

Originator: User

When requested
Fit Criterion:

Customer Customer
7 3
Satisfaction: Dissatisfaction:

Priority: 3 Conflicts: Nil

Supporting
NA
Materials:

History: NILL

Table : Can see the details of specific brand

Requirement Name : Can order the car of specific brand


Requirement #: Req06 Requirement Type: Functional
This requirement enables the user Can order the car of specific brand
Description:
.

Rationale: Can order the car of specific brand

Originator: User

When requested
Fit Criterion:

Customer Customer
7 3
Satisfaction: Dissatisfaction:

Priority: 3 Conflicts: Nil

Supporting
NA
Materials:

History: NILL

Table : Can order the car of specific brand

Admin :
Requirement Name: Admin Login
Requirement #: Req01 Requirement Type: Functional

This requirement enables admin to login into the main panel


Description: or system. For login Admin should have username and
password.

Rationale: To login in admin system

Originator: Administrator of the system

Fit Criterion: Admin is login in system.

Customer 9 Customer 1
Satisfaction: Dissatisfaction:

Priority: 1 Conflicts: Nil

Supporting Materials: NA

History: NA
Table :Admin Login
Requirement Name : Can see the cars currently available in showroom

Requirement #: Req06 Requirement Type: Functional


This requirement enables the Admin Can see the cars currently
available in showroom
Description:
.

Rationale: Can see the cars currently available in showroom

Originator: Admin

When requested
Fit Criterion:

Customer Customer
7 3
Satisfaction: Dissatisfaction:

Priority: 3 Conflicts: Nil

Supporting
NA
Materials:

History: NILL

Table : Can see the cars currently available in showroom

Requirement Name : Can add more cars

Requirement #: Req06 Requirement Type: Functional


This requirement enables the Admin Can add more carsavailable in
Description:
showroom
.

Rationale: Can add more cars

Originator: Admin

When requested
Fit Criterion:

Customer Customer
7 3
Satisfaction: Dissatisfaction:

Priority: 3 Conflicts: Nil

Supporting
NA
Materials:

History: NILL

Table : Can add more cars

Requirement Name : Can review orders

Requirement #: Req06 Requirement Type: Functional

Description: This requirement enables the Can review orders.


Rationale: Can review orders

Originator: Admin

When requested
Fit Criterion:

Customer Customer
7 3
Satisfaction: Dissatisfaction:

Priority: 3 Conflicts: Nil

Supporting
NA
Materials:

History: NILL

Table : Can review orders

Requirement Name : Can add new brand

Requirement #: Req06 Requirement Type: Functional

Description: This requirement enables theAdmin Can add new brand

Rationale: Can add new brand


Originator: Admin

When requested
Fit Criterion:

Customer Customer
7 3
Satisfaction: Dissatisfaction:

Priority: 3 Conflicts: Nil

Supporting
NA
Materials:

History: NILL

Table : Can add new brand

Non-functional Requirements
User Interface
Our Web Application has a formal and decent look, does not have any shocking colors,
each and every written thing is prominent and well-managed. The instructions given are easy and
have clear meaning.
Fast Response Time
Using this App in case of enter data, system shall response fast and relative to the
content.
Ease of use
It is easily understandable and easy to use ADMIN PANEL and USER PANEL.
Ease of learning
We provide the complete documentation of this project that is helpful for the users of this
project that how to use this product.
Understandability
We should use understandable icons and buttons that will be self-explanatory and the
interface of the App is not complex.
Speed and latency
• System is reliable
• It will be available for 24 hours for the user
• It will be accurate
• It will be reusable
• It will be understandable
• It will be flexible
• It will be testable
Longevity
We are using React.js and PHP environment along with My SQL Database that are easy,
understandable and flexible tools so our system will perform its working for maximum of its
capacity.
CHAPTER-2

ANALYSIS

Login/logout
2.1 Use Case Model (User)

Can review brands of


cars

Can review the


cars of specific
brand

Can see the


details of specific
brand

Can order the car


of specific brand

Figure : Use Case Model (User)

Use Case Model (Admin)

Can see the cars


currently
available in

Can add more


cars
Can review
orders

Figure : Use Case Model (Admin)

Coding:
App.js
import React, { Component } from 'react';

import { BrowserRouter as Router, Route, Switch } from 'react-router-dom';

import { connect } from 'react-redux';


import { bindActionCreators } from 'redux';

import { getCars } from './actions/cars';

import { getMessages } from './actions/message';

// User Components

import NavigationBar from './components/user/navigation_bar';

import TopSearchBar from './components/user/top_search_bar';

import FooterTop from './components/user/footer_top';

import FooterBottom from './components/user/footer_bottom';

import UserHomePage from './components/user/home';

import CarsList from './components/user/cars_list';

import OneCar from './components/user/one_car';

// Admin Components

import AdminNavigatioBar from './components/admin/admin_top_navigation';

import Cars from './components/admin/admin_cars';

import NewCar from './components/admin/newcar';

import Messages from './components/admin/messages';

import EditCar from './components/admin/edit_car';

class App extends Component {

componentDidMount(){

this.props.getCars();

this.props.getMessages();

render() {

return (

<div className="App">

<Router>
<div>

<Switch>

<Route path='/admin/' render={() => (

<div>

<AdminNavigatioBar />

<Route exact path='/admin/' component={Cars} />

<Route exact path='/admin/newcar' component={NewCar} />

<Route exact path='/admin/editcar/:id' component={EditCar} />

<Route exact path='/admin/messages' component={Messages} />

</div>

)} />

<Route path ='/' render={(props) => (

<div>

<NavigationBar />

<TopSearchBar {...props}/>

<Route exact path='/' component={UserHomePage} />

<Route exact path='/cars' component={CarsList} />

<Route exact path='/cars/:id' component={OneCar} />

<FooterTop />

<FooterBottom />

</div>

)} />

</Switch>

</div>

</Router>

</div>
);

function mapDispatchToProps(dispatch){

return{

getCars: bindActionCreators(getCars, dispatch),

getMessages: bindActionCreators(getMessages, dispatch)

export default connect(null, mapDispatchToProps) (App);

Car.js
import React from 'react';

import { CardImg, Button, Row, Col, Table } from 'reactstrap';

import { Link } from 'react-router-dom';

const Car = ({car}) => {

return (

<div>

<Row>

<Col md="12">

<div className="card border-secondary mb-3">

<div className="card-header text-success">

<h4>

<Link to={`/cars/${car.id}`}>

{car.year} {car.make} {car.model} {car.trim}


</Link>

</h4>

</div>

<div className="card-body">

<Row>

<Col md="5">

<CardImg className="carlist-margin" top width="100%" src={car.link} alt={car.make} />

</Col>

<Col md="4">

<Table className="striped">

<tbody>

<tr>

<td>Engine:</td>

<td>{car.engine}</td>

</tr>

<tr>

<td>Drive Type:</td>

<td>{car.drive_type}</td>

</tr>

<tr>

<td>Body:</td>

<td>{car.body_type}</td>

</tr>

<tr>

<td>Exterior Color:</td>

<td>{car.ext_color}</td>

</tr>

<tr>

<td>Interior Color:</td>

<td>{car.int_color}</td>

</tr>
<tr>

<td>Transmission:</td>

<td>{car.transmission}</td>

</tr>

<tr>

<td>VIN:</td>

<td>{car.vin}</td>

</tr>

</tbody>

</Table>

</Col>

<Col md="3">

<Table className="striped">

<tbody>

<tr>

<td className="text-primary text-right">

<strong>

MSRP:

</strong>

</td>

<td className="text-primary text-right">

<strong>

${car.price}

</strong>

</td>

</tr>

<tr>

<td className="text-danger text-right">Dealer Discount:</td>

<td className="text-danger text-right">{car.sale}%</td>

</tr>

<tr>
<td className="text-primary text-right">

<strong>

Total:

</strong>

</td>

<td className="text-primary text-right">

<strong>

${car.price-car.price*car.sale/100}

</strong>

</td>

</tr>

<tr>

<td className="text-primary text-right">Est. Lease:</td>

<td className="text-primary text-right">$230/m*</td>

</tr>

<tr>

<td className="text-primary text-right">Est. Finance:</td>

<td className="text-primary text-right">$330/m*</td>

</tr>

<tr>

<td className="text-right"></td>

<td className="text-right">

<Link to={`/cars/${car.id}`}>

<Button className="btn btn-success">More</Button>

</Link>

</td>

</tr>

</tbody>

</Table>

</Col>

</Row>
</div>

</div>

</Col>

</Row>

</div>

);

};

export default Car;

Admin.js

import React, { Component } from 'react';

import { Table, Row, Col } from 'reactstrap';

import { connect } from 'react-redux';

import { deleteCar } from '../../actions/cars';

import Icon from 'react-icons-kit';

import { bin } from 'react-icons-kit/icomoon';

import { pencil } from 'react-icons-kit/icomoon';

import { Link } from 'react-router-dom';

import TotalMessage from './total_messages';

import TotalInventory from './total_inventory';

import Specials from './specials';

class Cars extends Component {

handleDelete = (id) => {

this.props.deleteCar(id);
}

render(){

let inventory = this.props.cars ? this.props.cars.map(car => {

return(

<tr>

<th scope="row">{car.id}</th>

<td>{car.year}</td>

<td>{car.make}</td>

<td>{car.model}</td>

<td>{car.body_type}</td>

<td>{car.int_color}</td>

<td>{car.price}</td>

<td>{car.status ? "Available" : "Sold"}</td>

<td>

<Link to={`/admin/editcar/${car.id}`}>

<Icon icon={pencil} />

</Link>

</td>

<td><Icon

className="text-danger"

icon={bin}

onClick={(e)=>this.handleDelete(car.id)}

/></td>

</tr>
)

}) : null;

let totalInventory = this.props.cars ? this.props.cars : null;

let totalMessages = this.props.messages ? this.props.messages : null;

let specials = this.props.cars ? this.props.cars : null;

return(

<div className="container">

<br/>

<Row>

<Col md="4">

<TotalMessage totalMessages={totalMessages}/>

</Col>

<Col md="4">

<TotalInventory totalInventory={totalInventory} />

</Col>

<Col md="4">

<Specials specials={specials}/>

</Col>

</Row>

<br/>

<div className="card border-primary mb-3">

<div className="card-header text-white bg-primary">INVENTORY</div>

<div className="card-body">
<Table hover>

<thead className="text-success">

<tr>

<th>ID</th>

<th>YEAR</th>

<th>MAKE</th>

<th>MODEL</th>

<th>BODY</th>

<th>COLOR</th>

<th>PRICE</th>

<th>STATUS</th>

<th>EDIT</th>

<th>DELETE</th>

</tr>

</thead>

<tbody>

{inventory}

</tbody>

</Table>

</div>

</div>

</div>

);

}
function mapStateToProps(state, props){

return{

cars: state.cars,

messages: state.messages

export default connect(mapStateToProps, {deleteCar})(Cars);

Index.php

<!DOCTYPE HTML>

<html>

<head>

<title>Car Showroom</title>

<link href="css/style.css" rel="stylesheet" type="text/css" media="all" />


<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

<link href='http://fonts.googleapis.com/css?family=Patua+One' rel='stylesheet' type='text/css'>

</head>

<body>

<div class="header">

<div class="wrap">

<div class="header-bot">

<div class="logo">

<a href="index.html"><img src="images/logo.png" alt="" style ="width:450px;


height: 160px;"></a>

</div>

<div class="cart">

<div class="menu-main">
<ul class="dc_css3_menu">

<li class="active"><a href="index.php">Home</a></li>

<li><a href="about.html">About</a></li>

<li><a href="services.php">Brands</a></li>

<li><a href="contact.php">Contact</a></li>

<li><a href="login.php">Login</a></li>

<li><a href="register.php">Signup</a></li>

</ul>

<div class="clear"></div>

</div>

</div>

<div class="clear"></div>

</div>

</div>

</div>

<div class="main">

<div class="content-box1">
<div class="wrap">

<div class="banner2">

</div>

</div>

</div>

</div>

<div class="main-content">

<div class="wrap">

<div class="main-box">

<div class="box_wrapper"><h1>Car Brands </h1></div>

<div class="section group">

<div class="col_1_of_4 span_1_of_4">

<img src="images/Toyota.jpg" alt="" style="width: 375px;


height: 210px;"/>

<div class="grid_desc">

<p class="title">TOYOTA</p>

</div>

<div class="Details">

<a href="toyota.php" title="Lorem ipsum dolor sit amet, consect


etuer" class="button">cars<span></span></a></div>
</div>

<div class="col_1_of_4 span_1_of_4">

<img src="images/audi.jpg" alt="" style="width: 375px; height:


210px;"/>

<div class="grid_desc">

<p class="title">AUDI</p>

</div>

<div class="Details">

<a href="audi.php" title="Lorem ipsum dolor sit amet, consect etuer"


class="button">cars<span></span></a></div>

</div>

<div class="col_1_of_4 span_1_of_4">

<img src="images/bmw.jpg" alt="" style="width: 375px; height:


210px;"/>

<div class="grid_desc">

<p class="title">BMW</p>

</div>

<div class="Details">

<a href="bmw.php" title="Lorem ipsum dolor sit amet, consect


etuer" class="button">cars<span></span></a></div>

</div>
<div class="col_1_of_4 span_1_of_4">

<img src="images/Chevrolet.jpg" alt="" style="width: 375px;


height: 210px;"/>

<div class="grid_desc">

<p class="title">CHEVROLET</p>

</div>

<div class="Details">

<a href="chervolet.php" title="Lorem ipsum dolor sit amet, consect


etuer" class="button">cars<span></span></a></div>

</div>

<div class="clear"></div>

</div>

</div>

</div>

</div>

<div>

<a href="services.php" style="border: 1px black solid; margin-left: 65px;"> <b>Click here for more
brands ...</b></a>

</div>

<br><br>

<div class="footer">
<div class="wrap">

<div class="footer-top">

<div class="col_1_of_5 span_1_of_5">

<div class="footer-grid twitts">

<h3>Our Company</h3>

<div class="f_menu">

<ul>

<li>This is a CAR selling dealer</li>

<li>Please read our Terms and Conditions </li>

</ul>

</div>

</div>

</div>

<div class="col_1_of_5 span_1_of_5">

<div class="footer-grid twitts">

<h3>Get in touch</h3>

<ul class="follow_icon">

<li><a href="https://www.google.com"
style="opacity: 1;"><img src="images/follow_icon.png" alt=""></a></li>
<li><a href="#" style="opacity: 1;"><img
src="images/follow_icon1.png" alt=""></a></li>

<li><a href="#" style="opacity: 1;"><img


src="images/follow_icon2.png" alt=""></a></li>

<li><a href="#" style="opacity: 1;"><img


src="images/follow_icon3.png" alt=""></a></li>

<li><a href="#" style="opacity: 1;"><img


src="images/follow_icon4.png" alt=""></a></li>

<li><a href="#" style="opacity: 1;"><img


src="images/follow_icon5.png" alt=""></a></li>

</ul>

<p>+1 111-111-1111</p>

<span>support@autoexpress.com</span>

</div>

</div>

<div class="clear"></div>

</div>

</div>

</div>

</body>

</html>
(Sample of Requirement Shell)

Requirement Name: Manage Users

Req01 Functional
Requirement #: Requirement Type:
This requirement enables users to manage users of the system. Admin can
add new users, delete old users and update users info.
Description:

To manage users

Rationale:

Administrator of the system


Originator:

User is added in the system. And database is updated.


User is deleted and
Fit Criterion:

5 10
Customer Customer
Satisfaction: Dissatisfaction:
3 Nil
Priority: Conflicts:
Supporting NA
Materials:

History:
(Sample of Fully dressed Format of Use Case)

Use Case Name: Name of the use case (Ref. ………..)

UC # Ref: Req. #

UC Name

Level (Abstract or Detailed)

Description

Actor (s)

Stakeholders

Preconditions

Success Guarantee

Main Success Action Response


Scenario
1.

2.

Extensions

Special requirements

Frequency of
Occurrence

Miscellaneous
Test Case Template
Test Case #: Test Case Name:
System: Sub System:

Designed By: Design Date:

Executed By: Execution Date:


Short Description:

Pre-Condition:

Operating System: Environment:


Software Tools & Technologies
with version
Steps Strategy (Test- Action Input Actual Result / Expected Result/ Status (Pass/Fail) Remarks
to-Pass) / (Test- System Expected System
to-Fail) Response Response
(T-T-P) Or (T-T-F)

Comments ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

You might also like