Skip to content

Anime-Centered Spring Boot & Postgres Application

Notifications You must be signed in to change notification settings

judycodes/myHero

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Academia

A Full Stack Reddit Clone Focused On My Hero Academia .

Academia Colleagues

Technologies

Frontend

  • HTML
  • CSS
  • Javascript

Backend

  • Java (Spring Boot)
  • PostgreSQL

Application Approach & Process

Day 1 Day 2 Day 3 Day 4 Day 5 Day 6 Day 7 Day 8
Spring Boot Setup Login Endpoint and Functionality Post and Comment functionality (Create, List, Delete) linked to User_id UserController, UserProfileService, PostService Testing Minor code cleanup Fixed CORS errors Frontend features: Delete comment buttons functional, Display user profile, Display only user posts and only user comments on user profile Frontend Styling
Brainstorm: ERD Design, Endpoints User_Profile Model, Service, Repository, Controller Join columns in Comment, Post, User models Added IAuthenticationFacade To Check Authenticated Users Frontend Files Setup Backend to Frontend functionality: list all posts, delete only user posts, create a post, display comments, create user profile Backend to Frontend functionality: Delete only user comments and posts, Show user posts and user comments on button click in user profile Frontend error handling: Case sensitivity and whitespace in login and signup, No empty post and comment submissions
User Model, Service, Repository, Controller Create User_Profile Endpoint and Functionality Testing Setup Fixed minor errors with nonexistent/deleted posts Wireframe and Frontend design Brainstorm Frontend profile page designed Error handling for empty input submissions About page content added
Signup Endpoint and Functionality Entity Relationship Diagram (ERD) and Readme Updated ERD Minor code cleanup Login & Signup Frontend to Backend Connection, Logout functionality Front end features: View comments & Delete post buttons functional Created user stories Final readme update

Academia Entity Relationship Diagram

Academia ERD

API & Database Structure

Models & Tables Information
  • Academia's database has four data models: User,User_Profile, Post, & Comment.
  • The Post model has user_id as a foreign key for posts related to that user account.
  • The Comment model has user_id and post_id as foreign keys related to specified posts and for specified user accounts.
Relationships
  • A User has one and only one User_Profile and a User_Profile is associated to one and only one User.
  • A User can have zero to many posts.
  • A User can have zero to many comments.
  • Each Post can have zero to many comments.
  • Each Comment is associated to one post.
  • Each Post and Comment is linked to one User.

Wireframes

Homepage Design
Academia Home Page

Landing and Profile Page Designs
Academia Landing and Profile Page

About Page Design
Academia About Page

Completions

Working Functions

  • Signup
  • Login
  • Create user profile
  • Display user profile
  • Update user profile
  • List all posts
  • List all comments for a post
  • List only user's posts
  • List only user's comments
  • Create comment
  • Create post
  • Delete post
  • Delete comment

Available in Backend But Not Used in Frontend

  • List all users
  • Get specific post
  • Get specific comment

Unit Testing

  • User Service
  • User Controller
  • User Profile Controller
  • Post Controller

Exception Handling

  • Posts and Comments by a user can only be deleted by that user
  • Frontend: No empty or whitespace inputs, incorrect log in inputs, taken username or email address in user account registration

Challenges/Obstacles/Roadblocks

  • Understanding Unit Testing (beyond signup and login)
  • CORS issues
  • @JsonIdentityInfo causing unexpected issues
  • Connecting backend to frontend

Installation Instructions

Dependencies Needed:

  • PostgreSQL
  • Spring Boot JDBC
  • Spring Boot JPA
  • Spring Boot Security
  • Spring Boot Web
  • Spring Boot DevTools
  • Json Web Token

User Stories

[1] New user can create an account and enter the homepage to access MHA features. - New user inputs username, email, and password. A token is returned and associated with the new user. With the token, new user gains access to the website. - If parameters are unfulfilled or an error, an alert appears informing the user and the user can return to the landing page to complete the account registration process. If an error occurs in the signup process, the user is not redirected to the homepage.

[2] Returning user can log in with his/her username and password in order to enter the homepage to access MHA features. - Returning user logs in with username and password. A token is returned associated with the returning user. - If an error occurs with the login process, the user is informed and can try logging in again. If an error occurs in the login process, the user is not redirected to the homepage.

[3] A logged in user is able to create a user profile associated with his/her account. The user can input mobile and secondary email information for display in the user profile page. The primary email address and username entered when signing up for an account should already be on display on the user profile page. - Logged in user must provide secondary email address and mobile number for a user profile to be created. If those fields are not given, an alert will occur.

[4] A logged in user is able to create comments and posts associated with his/her account in order to communicate with other users and express his/her thoughts on My Hero Academia. - Logged in user must provide content in all input fields for post/ comment forms in order to submit a comment or post. If those fields are not entered, an alert will occur. - Logged in user will be allowed to delete only his/her own comments or posts.

About

Anime-Centered Spring Boot & Postgres Application

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published