Implementation of API Server for Quiz Whale Service.
This project uses the Udacity Nanoderee Style as a git commit message rule.
- React Frontend Application: https://github.com/tracer12/quiz-whale-fe
- The frontend web application that interacts with this backend API server.
- AI Server: https://github.com/wint3rx3/quiz-whale-ai
- The server responsible for creating quizzes.
- Acts as an intermediary between a React Web Application and a AI Server.
- Implements user authentication and authorization using Spring Security.
- Utilize JPA for efficient database management.
- Quiz Conversion
- Receives generated quizzes from the AI server.
- Result Transmission
- Returns the quizzes to the React Web Application.
- User Management
- Provides secure user authentication and authorization through Spring Security.
- Data Management
- Performs efficient database operations using JPA.
- Language
- JAVA 17
- Framework
- Spring boot 3.4.3
- Dependency Management
- Gradle
- Security
- Spring Security
- JWT
- Database
- MariaDB
- H2 (for testing)
- ORM
- JPA
- Utilities
- Lombok
- Gson
- JavaFaker
- Test
- JUnit
- The API documentation has been created using Postman.
- When the project is running, you can access the documentation through the base URL.
- This project has been deployed using AWS Elastic Beanstalk.
- Elastic Beanstalk automates the management of application infrastructure, allowing developers to focus on writing code.
- It provides features such as capacity provisioning, load balancing, auto-scaling, and application health monitoring.
Before running this project, you need to make the following configuration changes:
- Database Configuration
- Modify the database-related settings in both application.properties and build.gradle files.
- AI Server URL
- In the application.properties file, update the ai.server.url to point to your AI Server.
These configuration steps are crucial for the proper functioning of the application. Ensure that you have the correct database credentials and the appropriate URL for the ai server before attempting to run the project.
- build.gradle
- Database configuration:
dependencies { implementation 'org.mariadb.jdbc:mariadb-java-client' // Replace with your_database_driver if necessary }
- application.properties
- Database configuration:
spring.datasource.driver-class-name=your_database_driver_class_name spring.datasource.url=jdbc:your_database_type://your_database_url:your_port/your_database_name spring.datasource.username=your_database_username spring.datasource.password=your_database_password
- AI server URL:
ai.server.url=http://your-ai-server-url