Skip to content
/ cbd Public

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.

Notifications You must be signed in to change notification settings

jualoppaz/cbd

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

##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.

About

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.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published