Backend for an online store using Java Spring Boot.
Lalabrand is a robust backend solution for managing an online store, providing various functionalities such as product management, user authentication, and order processing. Built with Spring Boot, it leverages modern Java frameworks and tools to ensure scalability, security, and ease of use.
- User Management: Register, login, and manage user profiles with secure authentication.
- Product Catalog: CRUD operations for products, categories, sizes and other entities.
- Order Processing: Efficient handling of customer orders, from creation to completion.
- Email Notifications: Automated emails for password update.
- Security: JWT-based authentication and authorization(refresh token and access token).
- Database Management: Uses MySQL for data persistence.
- GraphQL API: Provides a flexible and efficient API for data querying.
To set up the project locally:
-
Clone the repository:
git clone https://github.com/denomelchenko/lalabrand.git cd lalabrand
-
Set up the MySQL database:
Create a database named
lalabrand_db
and configure yourapplication.properties
with the appropriate credentials. -
Build the project:
./mvnw clean install
-
Run the application:
./mvnw spring-boot:run
Alternatively, you can use Docker to run the application:
docker-compose up
Once the application is running, you can access the following endpoints:
- GraphQL API:
http://localhost:8080/graphql
Configuration details can be found in the application.properties.origin
file located under src/main/resources
.
You need to rename it to application.properties and edit origin properties to your local properties .
Key configurations include:
- Database Configuration: Set your MySQL database URL, username, and password.
- JWT Settings: Configure your JWT secret key and expiration time.
- Email Server: Configure your SMTP server details for email notifications.
- Java 17
- Spring Boot
- GraphQL
- MySQL
- JWT Authentication
- Lombok
- Docker
- Maven
- Flyway
This project is licensed under the AGPL-3.0 License - see the LICENSE file for details.