Web application made for the Web Applications Developement course from Universidad Rey Juan Carlos.
Deployed in the university server at Readme Sook Store.
Name | |
---|---|
Gonzalo Ortega Carpintero | g.ortega.2019@alumnos.urjc.es |
Sergio HernΓ‘ndez Sandoval | s.hernandezsa.2019@alumnos.urjc.es |
Markos Aguirre Elorza | m.aguirre.2016@alumnos.urjc.es |
Manuel Martin Alaez | m.martinal.2017@alumnos.urjc.es |
Alberto JimΓ©nez GΓ³mez | a.jimenezg.2017@alumnos.urjc.es |
To organice the team tasks we will be using the following Trello board.
Features that our page will have once the develpoment is complete.
Entities:
- Users.
- Books.
- Book reviews.
- Book offers.
- Buy and sell records.
Types of users:
- Unregistered - Can see book ofers a read book reviews.
- Registered - Can write reviews, publish book offers and buy books.
- Administrator - Can add new books and manage offers and accounts.
User permits:
- Unregistered - No data collection.
- Registered - Writen and read reviews, seen and published offers, bought and sold items and user profile with profile image, email and username.
- Administrator - Total access, no saved data.
Images:
- User profile image.
- Book image.
- Ofers images.
Charts:
- Published books and offers statistics.
Complementary technology:
- Email delivery to new users.
- Advance search and recomendations algorithim based on read reviews and seen offers.
Front-end and structure design
Main pages of our application.
Home page
Application main page where recomended products are displayed in accordance with the user preferences.
User page
Page to display the users information, including its account information, its uploaded offers, its shoping record and its favourites books.
Admin page
Page to upload new books to the database and manage all the application data.
Backend developement with Spring, Java and MySQL
- Java version: 17
- SpringBoot version: 2.4.4
- Database: MySQL
- Scheme:
readmewebstore
- User:
root
- Password:
password
- Scheme:
To start the application run the ReadmeBookstoreApplication.java
and go to https://localhost:8443/
on your browser.
Java class diagram of controllers.
Diagram in which all the java classes of the application and the templates are related.
Gonzalo Ortega Carpintero.
-
π Completed tasks:
- Spring project initialization.
- Admin page HTML and funcionalities, including visualizing, editing and deleting, all data from models.
- Upload books and its images as an admin funcionality.
- Upload and buy offers funtionalities.
- Statistics page with dinamic bar diagram.
- General style and dessign changes.
-
π€ Most significant commits:
-
π Files with more participation:
Sergio HernΓ‘ndez Sandoval.
-
π Completed tasks:
- Header and footer unification for templates.
- Model, Service and Repository of reviews, including improvements and changes in the rest of the models.
- Review controller and high participation in user, book and offer controller.
- Initialization of part of the data in the databaseInitializer.
- Implemented the funcionality of show/modify/delete the offers not sold from a user in his profile.
- Implemented the funcionality of show/modify/delete the reviews from a user in his profile.
- Implemented the funcionality of show/delete the favorite books from a user in his profile.
- Implemented the funcionality of show the buy and sell historial from a user in his profile.
- Some searchs with querys in repositorys.
- Show the books in book general page.
- Show the offers and reviews in particular book page.
- Participation in the pagination.
- Upload offers and upload reviews in a book.
- Delete or modify reviews in the profile.
- Modify the image of an offer.
- Pages of error, including the controller and the template.
- Changes in the style of the screens.
- Improvements and bug fixes.
- Drawing diagrams for documentation.
-
π€ Most significant commits:
-
π Files with more participation:
Markos Aguirre Elorza .
-
π Completed tasks:
- Elemental funtionalities of the User entityModel, Service and Repository
- Login
- Register (uploading/updating text and image for the first time to the server)
- User information display in the user-page (in collaboration with Sergio)
- Everything regarding to security
- Email sending additional technology implementation
-
π€ Most significant commits:
-
π Files with more participation:
Manuel Martin Alaez.
-
π Completed tasks:
- Load images from database
- Load more button in books
- Load more button for partial search
- Load more buttons for admin page and user page
- Load more buttons for offers and reviews
- Bugs and improvements
- Navegation diagram
-
π€ Most significant commits:
-
π Files with more participation:
Alberto JimΓ©nez GΓ³mez.
-
π Completed tasks:
- Database initialization.
- Data of books, categories, favorite books, and bought books.
- Searchtool, it is possible to search a book looking for the title, or a list of books looking for author, genre or a partial part of those properties.
- Dropdown categories by genre using search controller.
- Add or remove a book to favorites from the particular book page.
- Algorithm of recomendation made in static.
- Categories entity used in the recommendation algorithm.
- Update of algorithm to dynamic using the database data.
-
π€ Most significant commits:
-
π Files with more participation:
API rest integration and Docker deployment
Open API specification.
Docker image creation
To create a Docker image of our proyect, download the complete proget and run:
docker build -t readmebookstore/webapp6 -f docker/Dockerfile .
Docker compose run structions
To run our application container directly form Docker Hub theΓ©only requirements are to have Docker installed and a copy of our Doker Compose file.
Then, just run the following command indicating the Docker Compose file location:
docker-compose -f docker/docker_compose.ymlΒ up
Java class diagram of web and rest controllers.
Updated diagram in which the java classes of the application and the templates are related.
Gonzalo Ortega Carpintero.
-
π Completed tasks:
- Web URLs reformat to facilizate the API implementation.
- Book related APIs.
- Doker files added (althogh not working).
-
π€ Most significant commits:
-
π Files with more participation:
Sergio HernΓ‘ndez Sandoval.
-
π Completed tasks:
- APIs related to reviews by user.
- APIs related to reviews by admin.
- APIs related to user by session user.
- APIs related to user by admin.
- APIs related to show statistics.
- Passing duplicate code used in web and rest from controllers to services.
- Improvements and bug fixes.
- Updated class diagram.
- Readme structuring.
-
π€ Most significant commits:
-
π Files with more participation:
Markos Aguirre Elorza.
-
π Completed tasks:
- Login API
- Register API (email sending)
- Security
- Access permissions
-
π€ Most significant commits:
-
π Files with more participation:
Manuel Martin Alaez.
-
π Completed tasks:
- APIs related to offers.
- APIs related to offers by admin.
- OpenApi documentation.
- Bugs fixes.
-
π€ Most significant commits:
-
π Files with more participation:
Alberto JimΓ©nez GΓ³mez.
-
π Completed tasks:
- AlgorithmService.
- Insert search functions in BookService.
- Api for pageable searched books and find all books.
- Api for Algorithm.
- Api to add favorite books.
- Modify api to remove favorite books.
- Move principal algorithm function to AlgorithmService.
- Removing Algorithm web and rest controller files.
- Modify book web and rest controller to launch the algorithm directly.
- Remove duplicated and unused code.
-
π€ Most significant commits:
-
π Files with more participation:
Web application as SPA client with Angular and deployment
Compile and run SPA with Angular instructions
To generate Angular production files run:`ng build --configuration production --base-href="/new/"`
Then, move the files to a new folder in the backend resources so it can be served using:
mkdir ../backend/src/main/resources/static/new
cp dist/frontend/* ../backend/src/main/resources/static/new
YouTube video link showing the main functionalities of our web.
Gonzalo Ortega Carpintero.
-
π Completed tasks:
- Angular proyect and router maping file initializated.
- Angular admin page and all its components.
- Title components.
- Docker image creation and deployment in the university server.
-
π€ Most significant commits:
-
π Files with more participation:
Sergio HernΓ‘ndez Sandoval.
-
π Completed tasks:
- Component of display everything related to a book, including show his reviews, his offers and add/remove favorites.
- Component of upload a review.
- Component of upload a offer.
- Component of upload a review.
- Component of edit a offer.
- Component of edit a offer.
- Component of checkout (buy a offer).
- Common components such as review, offer and book formats.
- Added Angular material.
- Many code improvements and bug fixes.
-
π€ Most significant commits:
-
π Files with more participation:
Markos Aguirre Elorza.
- π Completed tasks:
- Everything regarding the user entity
- Login and Register functionalities
- Security (restrict access to pages)
- Review update
- Mailing service manteinance
-
π€ Most significant commits:
-
π Files with more participation:
Manuel Martin Alaez.
Alberto JimΓ©nez GΓ³mez.
-
π Completed tasks:
- Book general page
- Search component with best pick, search bar and categories
- Index
- Carousel of recommended books
- Video
-
π€ Most significant commits:
-
π Files with more participation: