Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/jualoppaz/cbd

Proyecto Node.js basado en una API REST consumida con AngularJS, conectado a MongoDB y desplegado en Heroku. Node.js project based on an API REST consumed with AngularJS, connected to MongoDB and deployed in Heroku.
https://github.com/jualoppaz/cbd

Last synced: about 5 hours ago
JSON representation

Proyecto Node.js basado en una API REST consumida con AngularJS, conectado a MongoDB y desplegado en Heroku. Node.js project based on an API REST consumed with AngularJS, connected to MongoDB and deployed in Heroku.

Awesome Lists containing this project

README

        

##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.
* 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
* 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
* router.js: rutas de la aplicación y de la API REST
* 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.
* 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
* 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
* router.js: application and API REST routes.
* 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.