Technical Analysis - NextDrive Autos
Technical Analysis - NextDrive Autos
NextDrive Autos
Replacement-car management
project
Technical specification
Robin Melis
Technical Architect
AppDev Company
AppDev Company
Version History
Document approval
1. Description
Project reference:
This technical specification describes the Replacement-car management tool, following the
requirements as specified in the NextDrive Autos requirements specification document and the
functional specification from the AppDev Company Functional Specifications document.
2. General
Following the company standards and practices, the design of the Replacement-car management
tool will utilize the Master-View-Controller (MVC) design pattern. This approach is selected to
provide optimal flexibility across both the user interface hardware and the database systems.
- Model: this layer manages all aspects related to the database, including:
o Definition of tables and fields
o Database connection handling
o Database operations such as Create, Read, Update and Delete (CRUD)
o The Model layer only communicates with the Controller layer
- View: This layer manages all input and output concerning the user interface, such as:
o Display of all user interface screens or web pages, linked with database
specifications
o The View layer only communicates with the Controller layer
- Controller: This layer is responsible for all functional and business logic, including:
o Authentication and authorization processes
Determining accessible fields, permissions per user/role. (read, update,
delete)
o Validation logic
Data read from database
Data input from View layer
Data write to database
Delete data
Generation of warnings, cautions, and error messages directed to the View
layer in multiple languages
o Event and message logging
o Implementation of business-specific logic
o APIs for communication:
With the Model layer for database CRUD operations
With the View layer for data input/output
3. Technical analysis
General remarks:
- Automatically generated
- Auto-incremented
- Unique per table
- When a record gets removed, the ID is not reusable, new records get the next available ID.
3.1. ERD
3.2.1. Model
Dataflow diagram:
3.2.2. View
3.2.3. Controller
Add car to DB
When adding a car to the database, all given fields must be filled in. Availability is automatically set
to 1 (true).
When editing a car information, a window with the chosen cars information will pop up, to fill this
window the application will request this cars information from the database.
As described before, the data is fetched form the database and returned to the window via this
method.
When a cars information is edited, the edited data will be sent to the database for updating.
When removing a car from the app, this method will be called. It will simply run some checks and call
the next method.
This method will save the specified reason for deletion in a table in the database (either the car was
sold or is broken and cannot be repaired. As well as change the cars availability to 0 (false) since we
do not delete these records.
This means that every change that is made in the database (cars being added, statuses being
changed, cars being deleted) are constantly being sent out to the ‘view’ page, so that no manual
refresher are required. The table given on this page will simply update live.
3.3.1. Model
Dataflow diagram:
3.3.2. View
3.3.3.
3.3.3.
3.3.3.
3.3.3.
3.3.3.
3.3.3.
3.3.3.
3.3.3.
3.3.3.
3.3.3.
3.3.3.
3.3.3.
3.3.3.
3.3.3.
3.3.3.
Controller
When viewing this page, a tab with the customers car will be displayed, to fill this with the correct
information, the application will request this cars information from the database.
And here the correct cars data is returned by the database so it can be used in the app.
When viewing this page, there is a second tab to view all info about your replacement car. When a
customer navigates here, all info about their replacement car is requested from the database.
And here the correct replacement cars data is returned by the database so it can be used in the app.
To create the mock-ups in this document we used the Balsamiq Wireframe Tools
(https://balsamiq.com/), to design the big diagram we used Miro (https://miro.com/), and to design
the ERDs, class diagrams & the data flow diagrams we made use of Google’s Drawio
(https://app.diagrams.net/).