The app to find parking easy
You can try it here
This webapp allows private parking owners to offer their parking lots to other users, who can find, reserve and pay a parking slot all around the globe.
Register an user, insert a location, insert the date, find the parking that fits your needs best, reserve an slot, and pay for it.
- userProfile
auth0_id: string;
nickname: string;
name?: string;
surname?: string;
email: string;
phone?: number;
description?: string;
- vehicle
type: 'car' | 'motorbike' | 'other';
size: 1 | 2 | 3; //'small' | 'medium' | 'large';
plate: string;
model: string;
owner: UserProfileDocument['_id'];
- parking
street: string;
streetNumber?: string;
postalCode?: string;
city: string;
province?: string;
location: { type: 'Point'; coordinates: [number, number] }; //GeoJSON
description: string;
image: string;
owner: UserProfileDocument['_id'];
- slot
identification: string;
size: 1 | 2 | 3; //'small' | 'medium' | 'large';
difficulty: 'easy' | 'medium' | 'hard';
price: number;
parking: ParkingDocument['_id'];
- reserve
period: string[];
slot: SlotDocument['_id'];
owner: UserProfileDocument['_id'];
vehicle: VehicleDocument['_id'];
API endpoints:
['GET', '/'],
['GET', '/userProfile/list'],
['GET', '/userProfile/:auth0Id'],
['GET', '/userProfile/detail/:userId'],
['POST', '/userProfile/detail/:userId'],
['GET', '/parking/list/:auth0Id'],
['GET', '/parking/address?lat&lng&limit&maxKm'],
['GET', '/parking/detail/:parkingId'],
['DELETE', '/parking/detail/:parkingId'],
['POST', '/parking'],
['GET', '/slot/detail/:slotId'],
['DELETE', '/slot/detail/:slotId'],
['GET', '/slot/list/:parkingId'],
['DELETE', '/slot/list/:parkingId'],
['POST', '/slot'],
['GET', '/vehicle/list/:auth0Id'],
['GET', '/vehicle/plate/:vehiclePlate'],
['GET', '/vehicle/detail/:vehicleId'],
['POST', '/vehicle/detail/:vehicleId'],
['DELETE', '/vehicle/detail/:vehicleId'],
['POST', '/vehicle'],
['GET', '/reserve/list/user/:auth0Id'],
['GET', '/reserve/detail/:reserveId'],
['GET', '/reserve/list/slot/:slotId'],
['DELETE', '/reserve/list/slot/:slotId'],
['GET', '/reserve/list/parking/:parkingId'],
['DELETE', '/reserve/list/parking/:parkingId'],
['DELETE', '/reserve/detail/:reserveId'],
['POST', '/reserve'],
- MongoDB - Database
- Fastify - Server Framework
- NodeJs - Server Environment
- React - JavaScript library
- NextJs - React Framework
- Nodemon - Dev utility
- Typescript - JavaScript with syntax for types
- ChartJs - JavaScript charting
- react-hook-forms - Performant, flexible and extensible forms
- tailwindcss - CSS framework
Due to the short time available for the development some functionalities have been cut and postponed for future developments:
- Filter for all list
- Global map of parkings
- Upload images for parking/user profile (Amazon S3)
- User deletion
- Design and art work
Thanks to the Core Code School Team for this amazing botcamp