Commercify is a Spring Boot-based e-commerce backend application that provides a robust API for managing products, orders, and payments. It includes user authentication, order management, and integration with Stripe for payment processing.
- User authentication and authorization with JWT
- Product management
- Order management system
- Payment processing with Mobilepay and Stripe integration(coming soon)
- Docker support for easy deployment
- Database migrations with Liquibase
- Java 17
- Maven 3.9.x
- Docker and Docker Compose
- MySQL 8.0 or later
- MobilePay Vipps account
- Stripe account for payment processing (Coming soon)
- Spring Boot 3.3.5
- Spring Security
- Spring Data JPA
- MySQL
- Liquibase
- JWT Authentication
- Stripe Payment Integration
- Docker
- Maven
- Clone the repository
- Create a
.env
file in thedeploy
directory:cp .env.example .env
Use the provided Makefile commands:
# Start the application
make up
# Stop the application
make down
# Rebuild and restart the application
make update
- Start MySQL database
- Build the project:
mvn clean package
- Run the application:
java -jar target/Commercify.jar
Still need to start MySQL database first.
mvn spring-boot:run
View and test the API endpoints in our Postman Workspace.
The application uses JWT (JSON Web Token) for authentication. Protected endpoints require a valid JWT token in the Authorization header:
Authorization: Bearer <your_jwt_token>
The application includes a multi-stage Dockerfile for optimized builds and a docker-compose configuration for easy deployment. The Docker setup includes:
- Maven build stage
- JRE runtime stage
- Automatic environment variable configuration
- Port mapping (6091)
- Volume mapping for Liquibase changelog files
- Create feature branch
- Implement changes
- Add tests
- Create pull request
Run the tests using Maven:
mvn test
- Fork the repository
- Create your feature branch
- Commit your changes
- Push to the branch
- Create a new Pull Request
For support, email [email protected]