The Fleet Management Frontend is a web-based application designed to provide an intuitive interface for managing vehicle fleets. It connects with the Fleet Management Backend to offer features like vehicle registration, real-time tracking, maintenance history, and usage analytics. Built using React and a modern frontend stack, this application provides an efficient and user-friendly experience for fleet managers.
- Vehicle Registration: Interface for adding new vehicles
- Real-Time Tracking: Visualize vehicle status and location on interactive maps using Leaflet.
- Maintenance Records: View and log vehicle maintenance history.
- Usage Analytics: Display basic analytics on vehicle usage, helping fleet managers make informed decisions.
- React: A JavaScript library for building user interfaces, offering a component-based architecture.
- TypeScript: A strongly typed programming language that builds on JavaScript, providing better tooling and type safety.
- Vite: A fast and efficient build tool for modern web applications.
- Chakra UI: A simple, modular, and accessible component library for React applications.
- React Query: A powerful library for data fetching and caching in React applications.
- React Hook Form: A performant, flexible, and extensible form library for React.
- Leaflet: An open-source JavaScript library for mobile-friendly interactive maps.
- React Leaflet: React components for Leaflet maps, making it easy to integrate maps into React applications.
- Zod: A TypeScript-first schema declaration and validation library.
- React Hook Form Resolvers: Integrates validation libraries like Zod with React Hook Form.
The Fleet Management Frontend is structured in a modular way, utilizing React components to encapsulate UI elements and logic. The application is organized into various components and pages, each responsible for specific features and functionalities.
- Vehicle Components: Handle UI and logic for displaying and managing vehicle data, including forms for registration and tables for listing vehicles.
- Tracking Components: Render interactive maps showing real-time vehicle locations and statuses using React Leaflet.
- Maintenance Components: Manage and display vehicle maintenance records, allowing users to log and view service history.
- Tracking Report Components: Provide visualizations and insights into vehicle usage patterns and performance metrics.
.
└── fleet-frontend/
├── public
└── src/
├── assets
├── clients
├── components
├── hooks/
│ ├── mutations
│ └── queries
├── pages/
│ └── vehicles
├── types
└── utils
Ensure you have the following installed:
- Node.js
- yarn
-
Clone the repository:
git clone git@github.com:jskod/fleet-frontend.git cd fleet-frontend
-
Install dependencies:
yarn install
-
Start the development server:
yarn run dev
-
Build for production:
yarn run build
-
Run the preview server:
yarn run preview
-
Run linting:
yarn run lint
The frontend can be easily deployed to any static hosting service, such as Vercel, Netlify, or AWS S3. Make sure to build the application using yarn run build
and then deploy the dist
folder.
![Screenshot 2024-08-04 at 3 13 26 AM](https://private-user-images.githubusercontent.com/43640384/354849400-fa2f01cd-916f-4643-85eb-a8331fe81b0a.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3Mzk0MjQ5OTEsIm5iZiI6MTczOTQyNDY5MSwicGF0aCI6Ii80MzY0MDM4NC8zNTQ4NDk0MDAtZmEyZjAxY2QtOTE2Zi00NjQzLTg1ZWItYTgzMzFmZTgxYjBhLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTAyMTMlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUwMjEzVDA1MzEzMVomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTk3MzQyNDA5Y2RiOTc0YWI2NDdmZTcxMGY1ZTEyNWVlMzJiMzQ3MzcyZWM2NWM3YjA0ZDQ1NjlhNDBmOGEwNWEmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.5tiRHwVmSJ5BV9qCDrnnvPX08cJAGB25oYs6TPkPbA4)
![Screenshot 2024-08-04 at 3 14 14 AM](https://private-user-images.githubusercontent.com/43640384/354849423-5bf8c36c-b47d-4fc5-8009-811841646fd6.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3Mzk0MjQ5OTEsIm5iZiI6MTczOTQyNDY5MSwicGF0aCI6Ii80MzY0MDM4NC8zNTQ4NDk0MjMtNWJmOGMzNmMtYjQ3ZC00ZmM1LTgwMDktODExODQxNjQ2ZmQ2LnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTAyMTMlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUwMjEzVDA1MzEzMVomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTExYzcxY2FjMDk3YjhmNjRlNTE5MjZhN2UyZGVmNzExNDA1ZjRjMGU4OTc3NDI5NjQzMWMwZTFhMTgwM2QwMzEmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.0nF0B82f9uTkNiadBpeDizUTLJSAQE0qQVdvVTty7M0)
![Screenshot 2024-08-04 at 3 15 09 AM](https://private-user-images.githubusercontent.com/43640384/354849454-c8da22fc-781c-464f-b3ad-becfe099fa0b.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3Mzk0MjQ5OTEsIm5iZiI6MTczOTQyNDY5MSwicGF0aCI6Ii80MzY0MDM4NC8zNTQ4NDk0NTQtYzhkYTIyZmMtNzgxYy00NjRmLWIzYWQtYmVjZmUwOTlmYTBiLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTAyMTMlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUwMjEzVDA1MzEzMVomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTRmMmVmYjc5ZGI0NzQ3MzcwYmViNDQ0NDdiN2NlY2QxY2NiZDYyMWI0OWRjMGVkYjQ1MzA4YzRhOWQ2MDgyNmMmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.agYFdgnke5Enwoyzb7R_bDhSAy3rocQ8humWjDMN6XE)
![Screenshot 2024-08-04 at 3 15 53 AM](https://private-user-images.githubusercontent.com/43640384/354849479-09777344-65ee-4aee-9aad-bf5189c0c4fe.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3Mzk0MjQ5OTEsIm5iZiI6MTczOTQyNDY5MSwicGF0aCI6Ii80MzY0MDM4NC8zNTQ4NDk0NzktMDk3NzczNDQtNjVlZS00YWVlLTlhYWQtYmY1MTg5YzBjNGZlLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTAyMTMlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUwMjEzVDA1MzEzMVomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPWY3MTM4MTM0M2RhNmQzODA0NjBjZTA4ZmRjNjdjZjc0ZTkxZTA0NzY5MzcyNWNiNDAyZTk0M2VlYjllNGU2ODMmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0._irbZMKME1ewBxfCxNWi4d-ugRBjBiEbeEHqdOMimlw)
![Screenshot 2024-08-04 at 3 16 20 AM](https://private-user-images.githubusercontent.com/43640384/354849492-9c234cd3-3a30-4eb1-9925-222168b18d36.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3Mzk0MjQ5OTEsIm5iZiI6MTczOTQyNDY5MSwicGF0aCI6Ii80MzY0MDM4NC8zNTQ4NDk0OTItOWMyMzRjZDMtM2EzMC00ZWIxLTk5MjUtMjIyMTY4YjE4ZDM2LnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTAyMTMlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUwMjEzVDA1MzEzMVomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTViYTY3OGY4MjdhZTUwN2JlMzAyNGY0ZWE1Njg4YmQ0MTNmNzU4ZjRhZjU4M2FlOGVmNjhjNWJkN2RlYTY3MTYmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.6OG54msQKCwEHWBES5YpWsSV9QYXIoNsue9nAEc2kSg)