A typical user of the application would be able to do the following:
- Sign up or Create an account, if a new user
- Login, if a returning user
- Create posts
- Update/ Edit a post or comment
- View their post and its comments
- View another user's posts li>Delete a comment or post
- Comment on other users' posts
- Like/ Unlike the posts/ comments of other users
- Spring Boot
- Thymeleaf
- Bootstrap
- MySQL
- Spring Data JPA
- Hibernate
- JDBC
- JUnit
- Git
Some of the lessons learned while working on this task include:
- Creating proper folder structure as is applicable in Spring MVC
- Creating html frontend using Thymeleaf
- Creating styles and designs using Bootstrap
- Programming according to Object Oriented Programming (OOP) principles
- Exception handling in Spring
- Implementing Unit tests for all methods
- Design proper databases with normalization and entities relationship mapping where necessary
- Adding timestamps in databases where necessary
- Creating custom response structures both on success and failure of implementations
- Executing efficient SQL queries
Some of the challenges encountered on this project include:
- Pusing Thymeleaf for the frontend was a steep leaning curve
- Joining multiple tables through mapping
- Creating proper SQL queries