FleetManagement
A C++ application for fleet management, designed for tracking and managing drivers, vehicles, and routes efficiently. The project supports adding, updating, and removing entities, as well as calculating route distances and tracking vehicle mileage and driver hours.
NOTE: This repository contains only the backend code. If you're looking for the complete app, please refer to this link.
- FleetManagement
-
FleetEaseis a fleet management app developed entirely in C++ using the QT framework (check my other repo ). It provides functionalities like managing vehicles, routes and permissions, making it a comprehensive tool for fleet administration.
##How can I use it?
1. Download QT Framework (preferably version 14.0.2)
2. Download my other repo and build it inside QT.
Just simply git clone https://github.com/dbogdanm/QT-OOP inside QT dev environment's terminal and build the project.
Now you should see something like this and like this.
- definirea a minim 3-4 clase folosind compunere cu clasele definite de voi
- constructori de inițializare cu parametri
- pentru o aceeași (singură) clasă: constructor de copiere,
operator=de copiere, destructor -
operator<<pentru toate clasele pentru afișare (std::ostream) - cât mai multe
const(unde este cazul) - implementarea a minim 3 funcții membru publice pentru funcționalități specifice temei alese, dintre care cel puțin 1-2 funcții mai complexe
- nu doar citiri/afișări sau adăugat/șters elemente într-un/dintr-un vector
- scenariu de utilizare a claselor definite:
- preferabil sub formă de teste unitare, mai ales dacă vorbim de aplicații consolă
- crearea de obiecte și apelarea tuturor funcțiilor membru publice în main
- vor fi adăugate în fișierul
tastatura.txtDOAR exemple de date de intrare de la tastatură (dacă există); dacă aveți nevoie de date din fișiere, creați alte fișiere separat
- tag de
git: de exempluv0.1 - serviciu de integrare continuă (CI); exemplu: GitHub Actions
- separarea codului din clase în
.h(sau.hpp) și.cpp - moșteniri:
- minim o clasă de bază și 3 clase derivate din aceeași ierarhie
- ierarhia trebuie să fie cu bază proprie, nu derivată dintr-o clasă predefinită
- funcții virtuale (pure) apelate prin pointeri de bază din clasa care conține atributul de tip pointer de bază
- minim o funcție virtuală va fi specifică temei (e.g. nu simple citiri/afișări)
- constructori virtuali (clone): sunt necesari, dar nu se consideră funcții specifice temei
- afișare virtuală, interfață non-virtuală
- apelarea constructorului din clasa de bază din constructori din derivate
- clasă cu atribut de tip pointer la o clasă de bază cu derivate; aici apelați funcțiile virtuale prin pointer de bază, eventual prin interfața non-virtuală din bază
- suprascris cc/op= pentru copieri/atribuiri corecte, copy and swap
-
dynamic_cast/std::dynamic_pointer_castpentru downcast cu sens - smart pointers (recomandat, opțional)
- excepții
- ierarhie proprie cu baza
std::exceptionsau derivată dinstd::exception; minim 3 clase pentru erori specifice - utilizare cu sens: de exemplu,
throwîn constructor (sau funcție care întoarce un obiect),try/catchînmain - această ierarhie va fi complet independentă de ierarhia cu funcții virtuale
- ierarhie proprie cu baza
- funcții și atribute
static - STL
- cât mai multe
const - funcții de nivel înalt, de eliminat cât mai mulți getters/setters/funcții low-level
- tag de
git: de exempluv0.2
- 2 șabloane de proiectare (design patterns)
- o clasă șablon cu sens; minim 2 instanțieri
- preferabil și o funcție șablon (template) cu sens; minim 2 instanțieri
- tag de
git: de exempluv0.3sauv1.0
- adăugați trimiteri către resursele externe care v-au ajutat sau pe care le-ați folosit
- https://refactoring.guru/design-patterns
Copyright (c) 2025 DINU BOGDAN
This project is licensed under the MIT License.
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.