FlyMan se trata de una solución para la empresa de car sharing MyKeego en su proceso de mantenimiento de los autos, donde se ofrecerá un webadmin para el administrador y jefe de los operarios que realizan las tareas a los vehículos de la empresa. Dicho administrador podrá asignar reservas de mantenimiento a cada uno de los operarios, para quienes además se desarrolló una aplicación móvil. En esta aplicación, los operarios podrán visualizar el total de servicios que deben realizar durante su jornada laboral, su órden y los detalles de cada uno, así como también información de los vehículos. Además podrán abrir y cerrar los autos desde la misma app y generar reportes del servicio realizado informando posibles daños.
Este servidor se consume desde el proyecto: FlyMan
- Abrir una terminal y ejecutar el comando “git clone” para clonar el repositorio en el
entorno local:
git clone https://github.com/FlyMan-ORT/flyMan_back.git - En la misma terminal, ingresar mediante el comando “cd” a la carpeta creada al clonar el repositorio.
Ejemplo:
cd C:\Users\desktop\flyMan_back - En la misma terminal, ejecutar el comando “npm install” para instalar todas las
dependencias y paquetes necesarios para el correcto funcionamiento:
npm install - Ingresar a la IDE de desarrollo, abrir el repositorio clonado previamente y en la
carpeta principal crear un archivo sin nombre con la extensión .env para poner ahí
dentro las variables de entorno necesarias. Solicitar dichas variables al equipo de
desarrollo ya que no pueden ser de dominio público.
.env example:
MONGODB=SECRET_KEY= - Finalmente para ejecutar el software, abrir una terminal en la IDE de desarrollo e
ingresar el comando "npm run dev" para iniciar el servidor de manera local en modo desarrollo:
npm run dev
| Method | Endpoint | Authorization | Body | Params | Query | Response |
|---|---|---|---|---|---|---|
| GET | /cars | Bearer [token] | ❌ | ❌ | ❌ | [car, ...] |
| POST | /cars/open/:plate | Bearer [token] | ❌ | car plate |
❌ | [Boolean] |
| POST | /cars/close/:plate | Bearer [token] | ❌ | car plate |
❌ | [Boolean] |
reservation: {
_id: ObjectId,
status: String,
startTime: Date,
endTime: date,
startParkingName: String,
billingStatus: String,
fuelStart: Double,
endFuel: Double,
car: Car,
user: User,
createdAt: Date,
bookingType: String
}| Method | Endpoint | Authorization | Body | Params | Query | Response |
|---|---|---|---|---|---|---|
| GET | /reservations | Bearer [token] | ❌ | ❌ | ❌ | [reservation, ...] |
| GET | /reservations/app | Bearer [token] | ❌ | ❌ | ❌ | reservation |
| POST | /reservations | Bearer [token] | {plate, mail, day, time} |
❌ | ❌ | {reservation id} |
| DELETE | /reservations/:id | Bearer [token] | ❌ | reservation id |
❌ | [Boolean] |
service:{
_id: ObjectId,
plate: String,
reservationId: ObjectId,
userEmail: String,
startDate: Date,
cleanliness: Integer,
damage: { isDamaged: Boolean, damageDescription: String },
documents: Boolean,
endDate: Date,
fuel: { fuelLoad: Boolean, fuelPrice: Double },
securityKit: Boolean,
tasks: { cleanTask: Boolean, inflateTireTask: Boolean, lampFixTask: Boolean },
tires: Boolean,
carImage: String
}| Method | Endpoint | Authorization | Body | Params | Query | Response |
|---|---|---|---|---|---|---|
| GET | /services | Bearer [token] | ❌ | ❌ | ended |
[service, ...] |
| GET | /services/plate/:plate/reservation/:reservationId | Bearer [token] | ❌ | car plate, reservation id |
❌ | service |
| POST | /services | Bearer [token] | {plate, reservationId, carImage} |
❌ | ❌ | {service id} |
| PATCH | /services/:id | Bearer [token] | {tasks: { cleanTask, inflateTireTask, lampFixTask }, damage: { isDamaged, damageDescription }, tires, securityKit, documents, cleanliness, fuel: { fuelLoad, fuelPrice }} |
service id |
❌ | [Boolean] |
user: {
_id: ObjectId,
name: String,
email: String,
password: String,
phone: String,
pin: String,
admin: Boolean,
deletedAt: Date
}| Method | Endpoint | Authorization | Body | Params | Query | Response |
|---|---|---|---|---|---|---|
| GET | /users | Bearer [token] | ❌ | ❌ | ❌ | [user, ...] |
| POST | /users/login | ❌ | {email, password} |
❌ | ❌ | {token} |
| POST | /users/web/login | ❌ | {email, password} |
❌ | ❌ | {token} |
| POST | /users/register | Bearer [token] | {name, email, password, phone, pin, admin} |
❌ | ❌ | {token} |
| PATCH | /users/:id | Bearer [token] | {name, email, password, phone, pin, admin} |
user id |
❌ | [Boolean] |
| DELETE | /users/:id | Bearer [token] | ❌ | user id |
❌ | [Boolean] |
| POST | /users/pin | Bearer [token] | {pin} |
❌ | ❌ | {pin} |
- jsonwebtoken para la creación de tokens de acceso.
- react-moment para el manejo de fechas.
- node.bcrypt.js para el hasheado de contraseñas.
- node-mongodb-native para la conexión con la base de datos de Mongo.
- js-bson para serealizar documentos JSON.
- express entorno de trabajo para estructurar la API.