BoardgameListingWebApp

Description

Board Game Database Full-Stack Web Application. This web application displays lists of board games and their reviews. While anyone can view the board game lists and reviews, they are required to log in to add/ edit the board games and their reviews. The 'users' have the authority to add board games to the list and add reviews, and the 'managers' have the authority to edit/ delete the reviews on top of the authorities of users.

Technologies

  • Java
  • Spring Boot
  • Amazon Web Services(AWS) EC2
  • Thymeleaf
  • Thymeleaf Fragments
  • HTML5
  • CSS
  • JavaScript
  • Spring MVC
  • JDBC
  • H2 Database Engine (In-memory)
  • JUnit test framework
  • Spring Security
  • Twitter Bootstrap
  • Maven

Features

  • Full-Stack Application
  • UI components created with Thymeleaf and styled with Twitter Bootstrap
  • Authentication and authorization using Spring Security
    • Authentication by allowing the users to authenticate with a username and password
    • Authorization by granting different permissions based on the roles (non-members, users, and managers)
  • Different roles (non-members, users, and managers) with varying levels of permissions
    • Non-members only can see the boardgame lists and reviews
    • Users can add board games and write reviews
    • Managers can edit and delete the reviews
  • Deployed the application on AWS EC2
  • JUnit test framework for unit testing
  • Spring MVC best practices to segregate views, controllers, and database packages
  • JDBC for database connectivity and interaction
  • CRUD (Create, Read, Update, Delete) operations for managing data in the database
  • Schema.sql file to customize the schema and input initial data
  • Thymeleaf Fragments to reduce redundancy of repeating HTML elements (head, footer, navigation)

How to Run

  1. Clone the repository
  2. Open the project in your IDE of choice
  3. Run the application
  4. To use initial user data, use the following credentials.
  • username: bugs | password: bunny (user role)
  • username: daffy | password: duck (manager role)
  1. You can also sign-up as a new user and customize your role to play with the application! 😊