Project developed as an assignment for Web Application Development subject, Software Engineering degree. Rey Juan Carlos University 2019/2020
Development off a web application for La Caverna del Dragon association (URJC - Mostoles).
Name | User | |
---|---|---|
Alfonso Pajuelo Aguirre | va.pajuelo@alumnos.urjc.es | alfonsopajueloaguirre |
Carlos Palomares Becerra | c.palomaresb@alumnos.urjc.es | carlospabe |
Daniel Moreno Godoy | d.moreno.2016@alumnos.urjc.es | Danielmg21 |
Miguel Jiménez Granizo | m.jimenezgra@alumnos.urjc.es | byGranizo |
Óscar Rivas Melar | o.rivas.2017@alumnos.urjc.es | oscar-llury |
- Project's trello board: https://trello.com/b/3Y1kgUPj/
Entities:
- Events: date, location, game rules and team quota.
- Merchandising: price, delivery and products availability.
- Registered user: profiles and preferences.
- Administration user: administration permissions and tools.
User's role and permissions:
- Registered users that belong to the association:
- President and vicepresident: association's members permisisions and responsabilities managment.
- Secretary: events and tournaments managment.
- Treasurer: accounts manager and merchandising store managment.
- Board member: site maintenance and user support.
- Registered user: profile and preferences managment, join events and purchase merchandising.
- Visitors: browse the website
Complementary tecnology:
- Bootstrap for responsive style.
- ChartJS for diagram designs.
- Subscribe to the newsletter.
- Contact block by application form.
- Event location by google maps.
Advanced query or algorithm: Based on user's purchases and inscripted activites, they will recieve a mail about new events according to their preferences.
Table of contents:
-
Merchandising product: shows more details of a merchandising product and let registered users to make purchases.
-
Event : allows users to check event's details and registered users to submit their attendance.
-
Profile edit: permit user to show and edit him personal information.
-
Management admin: exclusive to change user roles that belong to the association.
-
Management events: exclusive to show user inscriptions and all events rates.
-
Management merchandising: exclusive to show user purchases and all merchandising rates.
-
Management events register: exclusive to register a new event.
-
Management merchandising register: exclusive to register a new merchandising.
- Repository: Github/webapp5
- Development tools: Visual Studio Code, Spring Tool Suite4, Eclipse.
- Dependencies: MySQL Workbench
- To be able to execute the files included in this repository yo should follow the next steps:
- Open the project in Spring Tool Suite4.
- Start a service MySQL in the local host 3306, we recommend using XAMPP.
- Start a connection with de database from the ip: 127.0.0.1 in the port: 3306 with the user "root"and without password. We recomend using MySQL Workbench.
- (RECOMENDED) In Spring, right click over the root project folder > Maven > Update Project
- Start running the applicattion from Spring by Spring Boot App.
- Enter from a browser to: https://localhost:8443
Navigation Diagram for public pages:
Navigation Diagram for private pages:
Miguel
-
Completed tasks: creation of the Spring project, generation of the "Entity" classes for the database and its previous modeling. Integration of components and creation of the admin dashboard. Certification https and port 8443.
-
5 most significant commits:
- Pojo classers + Session
- Added https and secure config class
- All adapted to db, Lasting relations
- Header and footer as components + session controlle + header user menu
- dashboard example
-
5 files with participation:
- dashboard.html
- header.html
- dashboard.js
- DashboardControllerjava
- package com.lcdd.backend.pojo
Daniel
-
Completed tasks: generate the event and merchandaising templates forms. Configure the user roles of the application. Security configuration when accessing the database.
-
5 most significant commits:
- Added register event view
- Inserted event-form in backend
- Added data base user roles
- Added CSRFconfig
- Fixed errors in security classes
-
5 files with participation:
- merch-form.html
- event-form.html
- SecurityConfiguration.java
- CSRFHandlerConfiguration
- UserRepositoryAuthenticationProvider
Carlos
-
Completed tasks: implementation of a function for the "Show more" button on the Events and Merchandising pages. Sample image editing for assets. Text writing for all web.
-
5 most significant commits:
- fix not showing multiple times
- updated event images
- scrolling into show more button
- early version of the feature (showMore)
- removed scroll to button functionality
-
5 files with participation:
- events.html
- about_us.html
- merchandising.html
Óscar
-
Completed tasks: generate the event more information template that is filled from the form data template and its java controllers. Convert all static html pages into templates, also include the head, nav and footer as components. Create the error page and configure it to replace the "white error page".
-
5 most significant commits:
- event-form done, remining event-template
- updates, remaining photo, id, game, isTorunament (also added display none/block to Premio)
- created page 404
- changes in templates and html
- all pages converted to templates with head and footer in components
-
5 files with participation:
- event-template.html
- event-form.html
- (page)Controller.java
- Event.java
- error.html
Alfonso
-
Completed tasks: pagination and show more merchandising, convert the user view into a template, implement the user's logic for editing after the creation of the profile.
-
5 most significant commits:
- Implemented User Profile Logic
- Repository and User Controllers
- Updated Diagramns and Assets
- Added More Merch Types
- Show More Feature
-
5 files with participation:
- merchandising.html
- user_view.html
- user-form.html
- User.java
- UserController.java
- Document Api documentation with information about the REST API.
Docker allows you to use our application without having anything install.You just need to follow the next steps:
- Install docker, you can download it here.
- To run the app you simply have to open a terminal in Docker folder and execute "docker-compose up".
- If you are in Docker Desktop to access the app you have to open your navigator and go to https://localhost:8443. If you are in Docker Toolbox to acces to the app you have to open your navigator and go to https://localhost: with the port number that it is indicated in the first lines of the command line: for example:
docker is configured to use the default machine with IP 192.168.99.100
- To stop the app you have to execute "docker-compose down".
- The docker-compose.yml file uses a mysql image sets up in port 3306 (Don't forget to stop your local mysql), and a contafin image, sets up in port 8080.
To execute docker in linux you should follow the next commands:
- ./create-image.sh
- docker-compose up To stop running the docker use:
- docker-compose down
Miguel
-
Completed tasks: Dockerizing of app and database. script for building the app and pushing it to docker hub repository.
-
5 most significant commits:
- Everything working, lasting little chyanges before merging
- Script + dockerfile ready
- build script ready
- workflow finished
- base image stablished
-
5 files with participation:
- Dockerfile
- docker-compose.yml
- create-image.sh
- wait-for.sh
Daniel
-
Completed tasks:generate Rest security configuration, Login Rest Controller, RestControllerExceptionHandler and README.
-
5 most significant commits:
- LoginController done + RestSecurity started
- Security User
- Security role + merch
- Event security
- Added class diagram
-
5 files with participation:
- RestSecurityConfig
- LoginRestController
- RestControllerExceptionHandler
- README.md
- API.md
Carlos
-
Completed tasks: APIRest and services implemented to every event related entity, and implemented GET, POST, PUT and DELETE methods for event related purposes with its own security implementation.
-
5 most significant commits:
- initial api rest changes on event related classes
- changed repositories to services
- added security, fixed post and checked put and delete
- fixed errors after merge
- updated local variable names
-
5 files with participation:
- EventRestController.java
- RestSecuriryConfig.java
- UserRegisterEventService.java
- EventService.java
- GameService.java
Óscar
-
Completed tasks: generate the role and user service and rest controllers for api rest. Update initController with data more realistic data.
-
5 most significant commits:
- fixed new errors from the last commit.
- use Role and User Service from all fase2 controllers.
- Rest user and role controller working good, updated initController.
- created RoleRestController and RoleService update UserRestController too.
- created userService and profileRestController
-
5 files with participation:
- UserRestController.java
- RoleRestController.java
- RoleService.java
- UserService.java
- InitController.java
Alfonso
-
Completed tasks: APIRest and services implemented to every merchandising entity, finished advanced algorithm and implemented methods POST and GET images in the APIREST.
-
5 most significant commits:
- Started merchandising rest controller.
- Implemented services merch and merchtypes.
- Postman testing.
- Update security.
- Algorithm progress.
-
5 files with participation:
- MerchandisingRestController.java
- MerchandisingService.java
- MerchTypeService.java
- profile.html
- SecurityConfiguration.java
- Document Api documentation with information about the REST API.
Docker allows you to use our application without having anything install.You just need to follow the next steps:
- Install docker, you can download it here.
- To run the app you simply have to open a terminal in Docker folder and execute "docker-compose up".
- If you are in Docker Desktop to access the app you have to open your navigator and go to https://localhost:8443/new/. If you are in Docker Toolbox to acces to the app you have to open your navigator and go to https://localhost:8443/new/ with the port number that it is indicated in the first lines of the command line: for example:
docker is configured to use the default machine with IP 192.168.99.100
- To stop the app you have to execute "docker-compose down".
- The docker-compose.yml file uses a mysql image sets up in port 3306 (Don't forget to stop your local mysql), and a contafin image, sets up in port 8080.
To execute docker in linux you should follow the next commands:
- ./create-image.sh
- docker-compose up To stop running the docker use:
- docker-compose down
- Run the MySQL database.
- Run Spring Boot backend.
- On console, go to the root folder of the angular project.
- Run
npm install
to update packages. - Run
ng serve
for a dev server. Navigate tohttp://localhost:4200/
. The app will automatically reload if you change any of the source files. - Run
ng build
to build the project. The build artifacts will be stored in thedist/
directory. Use the--prod
flag for a production build. - To get more help on the Angular CLI use
ng help
or go check out the Angular CLI README.
Miguel
-
Completed tasks: adapting most of static pages to angular framework. new front services to get data to fill chats of dashboard, add new angular technology to dockerize script.
-
5 most significant commits:
- Front structure
- All services for dashboard created
- Login and logout ready
- Save role + delete user ready
- Charts ready
-
5 files with participation:
- Merch-line-chart
- Events-bar-chart
- Dashboard
- User-dash
- Event-dash
Daniel
-
Completed tasks: update the security for angular technology, creation of login and register pages to permit the access to the app. Resolving errors in different components.
-
5 most significant commits:
- apiRest calls fixed
- apiRest calls fixed
- backend security active
- Register working
- finishing userRegister
-
5 files with participation:
- Login-component
- Register-component
- Auth-interceptor
- Validator-interceptor
- RestSecurityConfig
Carlos
-
Completed tasks: coding profile page frontend, http put for the edit profile functionality, updating the README and helping with the logic behind the events and merch pages.
-
5 most significant commits:
- http put for user working
- first steps on profile front
- first readme update
- working tabs
- fixed not showing correct user info after refreshing
-
5 files with participation:
- profile.component.html
- profile.component.ts
- users.service.ts
- app.component.html
- README.md
Óscar
-
Completed tasks: creating events pages with angular technology. Catch the form data information and save it into the data base. Then, get the information ftom the data base and show it at the web page.
-
5 most significant commits:
- create an event work SUPER NICE
- create user registration in an event
- create event-template
- create new api purchase post
- create home by angular
-
5 files with participation:
- event-form-component
- event-template.component
- home.component
- error.component
- PurchaseRestController.java
Alfonso
-
Completed tasks: creating merch and profile pages with angular technology. From creating new merchandising to displaying the details in a template. Great contribution in profile implementing the advanced algorithm that suggest events to users.
-
5 most significant commits:
- created a merch template
- started MerchPageable
- merchList finished
- implemented buyMerch button
- finished advanced algorithm
-
5 files with participation:
- merch-form-component
- merch-template.component
- merch.component
- profile.component
- MerchRestController.java