QuestApp is a backend only application built with Java and the Spring Framework, designed to support essential social interaction features. It enables user management, post creation, commenting on posts, and liking posts. The backend handles data management and processes user interactions efficiently.
- Java
- Spring Framework
- Spring Boot
- Hibernate
- MySQL
- User registration and authentication
- Create, read, update, and delete (CRUD) operations for posts and comments
- Like functionality for posts
- Comprehensive API for user, post, comment, and like management
GET /rest/api/users: List all usersGET /rest/api/users/{id}: Retrieve a specific user by IDGET /rest/api/activity/{userId}: Activities a userPOST /rest/api/users: Create a new userPUT /rest/api/users/{id}: Update user informationDELETE /rest/api/users/{id}: Delete a user
GET /rest/api/posts: List all postsGET /rest/api/posts/{id}: Retrieve a specific post by IDPOST /rest/api/posts: Create a new postPUT /rest/api/posts/{id}: Update a post by IDDELETE /rest/api/posts/{id}: Delete a post
GET /rest/api/comments: List all commentsGET /rest/api/comments/{postId}: List comments for a specific postGET /rest/api/comments/{userId}: List comments for a specific userGET /rest/api/comments/{id}: Retrieve a specific comment by IDPOST /rest/api/comments: Add a comment to a postPUT /rest/api/comments/{id}: Update a commentDELETE /rest/api/comments/{id}: Delete a comment
GET /rest/api/likes: List all likes for a specific postGET /rest/api/{userId}: List likes for a specific userGET /rest/api/{postId}: List likes for a specific postPOST /rest/api/likes: Like a postDELETE /rest/api/likes/{id}: Remove a like from a post
This project uses MySQL as the database. To configure the database, follow these steps:
- Install MySQL and create a database:
CREATE DATABASE QuestApp;- Configure the connection settings in application.properties:
spring.application.name=APPLICATION_NAME
spring.datasource.url=jdbc:mysql://localhost:3306/DATABASE_NAME?useSSL=false
spring.datasource.username=USERNAME
spring.datasource.password=PASSWORD
spring.jpa.database-platform=org.hibernate.dialect.MySQLDialect
spring.jpa.hibernate.ddl-auto=create
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver


