##Español La base de este proyecto fue tomada de https://github.com/braitsch/node-login .
Puedes probar la aplicación en: http://cbd.herokuapp.com .
También está disponible la documentación de este trabajo, donde se estudian estas tecnologías y se realizan una serie de comparaciones.
###Justificación Este proyecto surge como trabajo para la asignatura "Complementos de Bases de Datos" del Grado en Ingeniería Informática - Ingeniería del Software de la Universidad de Sevilla.
###Temática En este proyecto puedes loguearte como alumno de un colegio y ver las excursiones disponibles por realizar. Si te gusta alguna excursión podrás apuntarte, ver los alumnos que acudirán, borrarte o incluso comentar las excursiones una vez que hayan transcurrido.
###Tecnologías En este proyecto he usado las siguientes tecnologías:
- MongoDB: como base de datos de la aplicación.
- NodeJS: para la implementación del servidor.
- AngularJS: para el cliente.
- Jade: para la simplificación de las plantillas HTML.
###Casos de uso Como usuario podemos:
- Registrarnos en la aplicación.
- Loguearnos en la aplicación.
- Reestablecer nuestra contraseña.
- Listar todas las excursiones disponibles.
- Buscar excursiones por palabras contenidas en el título o en la descripción.
- Consultar la información asociada a una excursión.
- Inscribirnos en una excursión que aún no se ha realizado.
- Comentar una excursión que ya ha sido realizada.
###Estructura del proyecto El proyecto está estructurado de la siguiente forma:
- app: carpeta con el código fuente de la aplicación.
- public: archivos estáticos de la aplicación.
- css: hojas de estilo.
- bootstrap-theme.css
- bootstrap.css
- font-awesome.css
- starter-template.css
- style.css
- style.styl
- fonts: fuentes de font-awesome para el uso de los iconos.
- fontawesome-webfont.eot
- fontawesome-webfont.svg
- fontawesome-webfont.ttf
- fontawesome-webfont.woff
- img: imágenes usadas en la aplicación.
- js: código javascript de la aplicación.
- angular: controladores de angular para las plantillas.
- angularDiagrams.js
- angularIndex.js
- angularTrip.js
- controllers: controladores de jQuery para las plantillas.
- diagramsController.js
- homeController.js (sustituido por indexController.js)
- indexController.js
- loginController.js
- signupController.js
- tripController.js
- form-validators: funciones de validación en jQuery.
- accountValidator.js
- emailValidator.js
- loginValidator.js
- resetValidator.js
- views: llamada a las funciones jQuery de las vistas.
- diagrams.js
- home.js
- index.js
- login.js
- reset.js
- singup.js
- trip.js
- angular.js: librería AngularJS.
- angular: controladores de angular para las plantillas.
- vendor: css y javascript inicial. Sobreescrito por las versiones de la carpeta "css".
- bootstrap-modal.js
- bootstrap-transition.js
- bootstrap.min.css
- jquery.form.js
- jquery.min.js
- css: hojas de estilo.
- server: archivos del servidor.
- modules: módulos definidos para funcionalidades concretas.
- account-manager.js
- country-list.js (no se usa en esta aplicación)
- data-base-manager.js (gestor de conexiones con la base de datos. Aquí se definen las consultas)
- email-dispatcher.js: gestor de emails de la aplicación.
- email-settings.js: archivo de configuración con las credenciales del email de la aplicación.
- views: vistas de la aplicación.
- modals: modales de la aplicación.
- alert.jade
- confirm.jade
- form-errors.jade
- lost-password.jade
- reset-password.jade
- 404.jade
- account.jade
- contact.jade
- diagrams.jade
- home.jade (no usado actualmente)
- index.jade
- layout.jade
- login.jade
- print.jade
- reset.jade
- signup.jade
- trip.jade
- modals: modales de la aplicación.
- router.js: rutas de la aplicación y de la API REST
- modules: módulos definidos para funcionalidades concretas.
- public: archivos estáticos de la aplicación.
- Procfile: archivo necesario para el despliegue en Heroku.
- README.md: este fichero.
- app.js: archivo para la creación del servidor.
- package.json: dependencias de nuestro proyecto Node.js.
##English## This project was forked by https://github.com/braitsch/node-login .
You can try the app in: http://cbd.herokuapp.com .
You can also download the generated documentation about this project, where all of these technologies are studied and compared with other technologies.
###Justification This project was born as a deliverable for the "Complementos de Bases de Datos" subject in Grado en Ingeniería Informática - Ingeniería del Software offered by Universidad de Sevilla.
###Subject In this application you can log in as a school user and you can see the avaible school trips. If you like any trip you could sign up for the trip, see all the attendants or comment it.
###Technologies In this project I have used:
- MongoDB: as the database to storage the application data.
- NodeJS: for the server implementation.
- AngularJS: for the client side.
- Jade: for make the templates easier than HTML.
###User cases As user we can:
- Create an account.
- Log in the application.
- Reset our password.
- Retrieve all the avaible trips.
- Search for any trip that contains the specified word in the title or description.
- See all the related information about the selected trip.
- Sign up in a no finished trip.
- Comment a finished trip.
###Project structure The project is structure as follows:
- app: application source code.
- public: application static files.
- css: stylesheets.
- bootstrap-theme.css
- bootstrap.css
- font-awesome.css
- starter-template.css
- style.css
- style.styl
- fonts: font-awesome fonts for icons.
- fontawesome-webfont.eot
- fontawesome-webfont.svg
- fontawesome-webfont.ttf
- fontawesome-webfont.woff
- img: application images.
- js: javascript code.
- angular: angular controllers for templates.
- angularDiagrams.js
- angularIndex.js
- angularTrip.js
- controllers: jQuery controllers for templates.
- diagramController.js
- homeController.js (replaced by indexController.js)
- indexController.js
- loginController.js
- signupController.js
- tripController.js
- form-validators: jQuery validator functions.
- accountValidator.js
- emailValidator.js
- loginValidator.js
- resetValidator.js
- views: calls to jQuery functions views.
- diagrams.js
- home.js
- index.js
- login.js
- reset.js
- singup.js
- trip.js
- angular.js: AngularJS library.
- angular: angular controllers for templates.
- vendor: initial css and javascript. Replaced by the files contained in the "css" folder.
- bootstrap-modal.js
- bootstrap-transition.js
- bootstrap.min.css
- jquery.form.js
- jquery.min.js
- css: stylesheets.
- server: server files.
- modules: defined modules for specific functionalities.
- account-manager.js
- country-list.js (not currently used)
- data-base-manager.js (Queries are defined here)
- email-dispatcher.js: application emails manager.
- email-settings.js: file where our mail credentials are specified.
- views: application views.
- modals: bootstrap modals.
- alert.jade
- confirm.jade
- form-errors.jade
- lost-password.jade
- reset-password.jade
- 404.jade
- account.jade
- contact.jade
- diagrams.jade
- home.jade (not currently used)
- index.jade
- layout.jade
- login.jade
- print.jade
- reset.jade
- signup.jade
- trip.jade
- modals: bootstrap modals.
- router.js: application and API REST routes.
- modules: defined modules for specific functionalities.
- public: application static files.
- Procfile: required file by Heroku for deployment.
- README.md: the file you are reading.
- app.js: file for the server creation.
- package.json: our Node.js project dependencies.