A full-stack billing software application built with Spring Boot (Java) backend and React frontend.
- Backend: Spring Boot application with JPA, Security, JWT, MySQL, AWS S3, and Razorpay integration
- Frontend: React application with Vite build tool
Before running this project, make sure you have the following installed:
- Java 21 - Download JDK 21
- Node.js (v16 or higher) - Download Node.js
- MySQL (v8.0 or higher) - Download MySQL
- Maven (optional - project includes Maven wrapper)
- Install and start MySQL server
- Create a database (or the application will create it automatically)
- Update database credentials in
src/main/resources/application.properties
Update the following configuration files:
# Update these values with your actual credentials
spring.datasource.username=your_mysql_username
spring.datasource.password=your_mysql_password
# JWT Configuration
jwt.secret=your_secure_jwt_secret_key
# AWS S3 Configuration (if using file uploads)
aws.access.key.id=your_aws_access_key
aws.secret.access.key=your_aws_secret_key
aws.s3.region=your_aws_region
aws.s3.bucket.name=your_bucket_name
# Razorpay Configuration (if using payments)
razorpay.key.id=your_razorpay_key_id
razorpay.key.secret=your_razorpay_key_secret- Navigate to the project root directory
- Run the Spring Boot application:
# Using Maven wrapper (recommended)
./mvnw spring-boot:run
# Or using Maven if installed globally
mvn spring-boot:runThe backend will start on http://localhost:8080
- Navigate to the client directory:
cd client- Install dependencies:
npm install- Start the development server:
npm run devThe frontend will start on http://localhost:5173 (or another available port)
- Start Backend: Run
./mvnw spring-boot:runfrom the project root - Start Frontend: Run
npm run devfrom theclientdirectory - Access Application: Open
http://localhost:5173in your browser
- Build Frontend:
cd client
npm run build- Build Backend:
./mvnw clean package- Run Production Backend:
java -jar target/Bilingsoftware-0.0.1-SNAPSHOT.jarBased on the codebase, this application includes:
- User Authentication - Login/logout with JWT
- User Management - Create, read, update, delete users
- Category Management - Manage product categories
- Item Management - Manage products/items
- Order Management - Create and manage orders
- Payment Integration - Razorpay payment gateway
- File Upload - AWS S3 integration for file storage
- Dashboard - Analytics and reporting
- Receipt Generation - Print receipts for orders
The backend provides REST APIs at http://localhost:8080/api/v1.0/:
/login- User authentication/users- User management/categories- Category management/items- Item management/orders- Order management/payments- Payment processing/dashboard- Dashboard data
-
Database Connection Error:
- Ensure MySQL is running
- Check database credentials in
application.properties - Verify database exists or set
createDatabaseIfNotExist=true
-
Port Already in Use:
- Change server port in
application.properties - Kill processes using the port
- Change server port in
-
Frontend Build Errors:
- Clear node_modules and reinstall:
rm -rf node_modules && npm install - Check Node.js version compatibility
- Clear node_modules and reinstall:
-
CORS Issues:
- The backend should handle CORS for development
- Check SecurityConfig.java for CORS configuration
- Main application:
src/main/java/in/yashNayan/Bilingsoftware/BilingsoftwareApplication.java - Controllers:
src/main/java/in/yashNayan/Bilingsoftware/controller/ - Services:
src/main/java/in/yashNayan/Bilingsoftware/service/ - Entities:
src/main/java/in/yashNayan/Bilingsoftware/entity/
- Main app:
client/src/App.jsx - Components:
client/src/components/ - Pages:
client/src/pages/ - Services:
client/src/Services/
This project is licensed under the MIT License.
Yash Nayan