A comprehensive Spring Boot application designed to help students manage their finances effectively by tracking expenses, income, and budget allocations.
- User Authentication & Authorization: Secure JWT-based authentication with email verification
- Expense Management: Track and categorize daily expenses
- Income Tracking: Monitor various income sources
- Category Management: Organize transactions with custom categories
- Dashboard Analytics: Visualize spending patterns and financial summaries
- Transaction Filtering: Advanced filtering capabilities for financial data
- Profile Management: Customize user preferences and settings
- Recent Transactions: Quick access to latest financial activities
- Backend Framework: Spring Boot 3.5.5
- Security: Spring Security with JWT Authentication
- Database: MongoDB
- Build Tool: Maven
- Java Version: 17+
- Image/Container: Docker
- Java 17 or higher
- Maven 3.6+
- MongoDB
- Docker (optional)
- Clone the repository
git clone https://github.com/shihabhasan0161/SmartStudent-Backend.git cd StudentBudgetTracker/studentexpensetracker - Configure application.properties
Update the
src/main/resources/application.propertiesfile with your MongoDB connection details and JWT secret key. - Build the project
mvn clean install
- Run the application
mvn spring-boot:run
- Using Docker (optional)
- Build Docker image
docker build -t smartstudent-backend . - Run Docker container
docker run -d -p 8080:8080 --name smartstudent smartstudent-backend
- Build Docker image
Authentication:
- POST /api/v1/register - Register new user
- POST /api/v1/login - User login
- GET /api/v1/activate - Account activation via email
Expenses:
- GET /api/v1/expenses - Get all expenses
- POST /api/v1/expenses - Create new expense
- DELETE /api/v1/expenses/{id} - Delete expense
Income:
- GET /api/v1/incomes - Get all income entries
- POST /api/v1/incomes - Create new income
- DELETE /api/v1/income/{id} - Delete income
Categories:
- GET /api/v1/categories - Get all categories
- GET /api/v1/categories/{type} - Get category by expenses/incomes type
- POST /api/v1/categories - Create new category
- PUT /api/v1/categories/{categoryId} - Update category
Dashboard:
- GET /api/v1/dashboard - Get dashboard data
- Fork the repository
- Create your feature branch (git checkout -b feature/AmazingFeature)
- Commit your changes (git commit -m 'Add some AmazingFeature')
- Push to the branch (git push origin feature/AmazingFeature)
- Open a Pull Request