Skip to content

eugenelow13/OOP_Project

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

OOP_Project

Course and Team Information

IS442-Object Oriented Programming, AY2023/24 T2

Running the project

Prerequisites

  • Ensure Docker Daemon is runnning

    alt text

Running the Backend Server

  • Go to the backend (cd backend directory and run the following command):

    On windows:

    mvn.cmd spring-boot:run

    On Unix-based systems:

    ./mvnw spring-boot:run

    alt text

Seeding data

  • Go to the backend directory and run the following command:

    docker exec -i backend-mysql-1  mysql -u root --password=verysecret < deploy.sql

    alt text

Running the Frontend Server

  • Go back to the root directory

  • Go to the oop-project (cd oop-project directory and run the following command):

    npm install
    npm run serve

    alt text

Loaded Homepage

  • Copy any of the URL in the Frontend 'terminal' and launch it at the browser of your choice:

  • The homepage of the application will be loaded as follows:

    alt text

Register with a valid email address

  • Fill up the registration details with a valid email address. This will ensure that email notifications can be sent to the account with the registered email address.

  • Registered account will be automatically be assigned the 'Customer' role.

  • From the Login Page, click on 'Register'

    alt text

  • Fill in the registration details, with a valid email and click 'Register'

    alt text

Existing Accounts

  • Here are some user mock up data that contains 3 Accounts from the different roles (Customer, Event Manager, Ticketing Officer).

    User_ID Name Email Password Roles
    1 John Doe [email protected] password Customer
    2 Jane Doe [email protected] password Event Manager
    3 JaneJohn Doe [email protected] password Tickering Officer

Login Page

  • At the login page, key in the account credentials (e.g., email and password) to visit the different pages, based on the user role

  • At the homepage, click on the 'Login/Signup'

    alt text

  • You will arrive at the login page. Key in the credentials depending on the user type of your choice.

    alt text

Customer Homepage
  • If you are logged in as a 'Customer', this will be the homepage.

    alt text

    alt text

Event Manager Homepage
  • If you are logged in as an 'Event Manager', this will be the homepage.

    alt text

Homepage
  • If you are logged in as a 'Ticketing Officer', this will be the homepage.

    alt text

    alt text

Appendix

Coding Documentation Practices

For services with complex logic computation, we have documented the code with comments, providing specific details that help explain the inner workings of the code in depth.

  • Example 1: Email Service

    alt text

  • Example 2: Place Booking

    alt text

  • Example 3: Cancel Booking

    alt text

Querying from Docker MySQL

This section will show how information is stored in the database by interacting with the Docker MySQL interface to obtain details about the tables and to query data through SQL commands.

  • In Docker, click on the '>' icon beside the 'backend' container

    alt text

  • In the expanded collapse view, click on 'mysql-1'

    alt text

  • Navigate to the 'exec' tab

  • Run the following commands to log in to the database

    mysql -u myuser -p
    password: secret

    alt text

  • To access the database and view the tables available, run the following commands:

    use mydatabase;
    show tables;

    alt text

  • To view the schema of a table, run the following command (Replace 'User' with any table of your choice)

    describe user;

    alt text

  • To query rows from a table, run the following command (Replace 'User' with any table of your choice)

    select * from user;

    alt text

Technologies used (non-exhaustive list)

Backend

  • Java
  • Spring MVC (for creating RESTful APIs)
  • Spring Data JPA
  • Spring Security (For JWT Authentication)
  • Apache POI (for writing Excel files)
  • iText (for generating PDFs)
  • Lombok (for generating getters, setters, constructors, etc.)
  • Maven (for dependency management)
  • MySQL (for the database)
  • Docker
  • Docker Compose

Frontend

  • Vue.js
  • Vuetify
  • Vue Router

Authors

  • Sean Lim
  • Low Jun Jie Eugene
  • Bryan Low Chee Theng
  • Nicholas Arvin Singham
  • Chua Wei Ling Jacqueline
  • Luqman Juzaili Bin Muhammad Najib

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published