#CollectiveCar app **Backend:** Nodejs + Express + MongoDB **Frontend:** Angularjs + Ionic + MaterialDesign ##Project Structure: ``` collectivecar/ server/ controllers/ userController.js travelController.js carController.js askfortravelController.js models/ userModel.js travelModel.js carModel.js needtravelModel.js node_modules/ config.js server.js package.js README.md ``` ##To Do List: **Backend:** ``` -signup user --> done -loggin user --> done -update user profile --> done -create new travel --> done -update travel --> done -delete travel --> done -create offeringCar -update offeringCar -delete offeringCar -create askingForTravel (needtravel) -update askingForTravel -delete askgingForTravel -user joins a car -user joins travel ``` **Frontend:** ``` -signup user -loggin user -update user profile -create new travel -update travel -delete travel -create offeringCar -update offeringCar -delete offeringCar -create askingForTravel -update askingForTravel -delete askgingForTravel ``` -------------------- ####**PARA LA BASE DE DATOS** [para definir como queremos q esté estructurado, pensando en las funcionalidades que queremos tener]: **user**: -username -password -description -icon/avatar -mail -phone **travel**: (seria cuando un user publica un nuevo trayecto que va a hacer) -title -description -owner (user q ha publicado el viaje) -from -to -date -description -generateddate (cuando el user genera el aviso) -seats (plazas de coche disponibles) **car**: (cuando un user tiene un coche disponible para hacer viajes que se necesiten) -title -description -owner (user q ha publicado el viaje) -zone (la zona por la que está) -available (cuando el user esta disponible, marca que esta disponible, si unos dias no podrá, lo desactiva) -generateddate -seats (plazas de coche disponibles) **needtravel**: (cuando un user no dispone de coche y necesita hacer un travel) -title -description -owner (user q ha publicado el asking travel) -from -to -date (las fechas para cuando se necesita el viaje) -generateddate (cuando el user genera el aviso) -seats (plazas de coche necesarias) **collectivizedCar**: (los coches/furgos colectivos) --> quizás esto no hace falta, solo usar 'offeringCar' normal con un añadido para notificar que es un coche colectivizado -owner (user q publica el coche) -title -seats (plazas de coche disponibles) -------------------- ####**OTRAS COSAS**: lo de poner o no un mapa, de entrada no destinaria esfuerzos en eso. Para la primera versión de la aplicación no hace falta, solo añade confort visual, para ver el recorrido, pero de entrada para una app q pone en contacto personas para compartir coche, no es algo imprescindible quizás ####**RESOURCES to use**: car icons [http://www.flaticon.com/packs/transportation-7](http://www.flaticon.com/packs/transportation-7) css para la app: matterializeCSS [http://materializecss.com/](http://materializecss.com/) avatars users: [http://www.flaticon.com/packs/animal-icon-collection](http://www.flaticon.com/packs/animal-icon-collection)