Finly Money Manager is a comprehensive personal finance management application that helps users track their income, expenses, and overall financial health. Built with a modern tech stack, it offers an intuitive interface for managing your financial life.
- π Comprehensive Dashboard: Real-time financial overview with interactive charts and graphs
- π° Income Tracking: Record and categorize income from multiple sources
- πΈ Expense Management: Track and categorize expenses with detailed breakdowns
- π Smart Categories: Create custom categories with emoji support for better organization
- π Financial Analytics: Visual representation using line charts and pie charts
- π Monthly Overview: Track monthly financial performance and trends
- οΏ½ Secure Authentication: JWT-based authentication with email verification
- π§ Email Integration: Account activation and password reset via email
- πΌοΈ Profile Management: Upload and manage profile pictures via Cloudinary
- π± Responsive Design: Mobile-first design that works on all devices
- π¨ Modern UI: Built with TailwindCSS for a clean, professional interface
- π Transaction Filtering: Advanced filtering options for transactions
- π Export Functionality: Export data using Apache POI integration
- π Real-time Updates: Live updates across all components
- React 19.1.0 with Vite 7.0.4
- TailwindCSS 4.1.11 for styling
- React Router DOM 7.7.1 for navigation
- Recharts 3.1.0 for data visualization
- Axios 1.11.0 for API communication
- React Hot Toast for notifications
- Emoji Picker React for category emojis
- Lucide React for icons
- Moment.js for date handling
- Spring Boot 3.5.4 (Java 21)
- Spring Security for authentication
- Spring Data JPA for database operations
- MySQL database
- JWT (JSON Web Tokens) for authentication
- Spring Mail with Brevo SMTP for email services
- Apache POI for Excel file handling
- Lombok for reducing boilerplate code
- Maven for dependency management
- Node.js (v18 or higher)
- Java JDK 21
- Maven 3.6+
- MySQL 8.0+
- IDE: VS Code (frontend), IntelliJ IDEA (backend)
-
Clone the repository
git clone https://github.com/Minulck/Finly-Money-Manager.git cd Finly-Money-Manager -
Frontend Setup
cd finly-webapp npm installCreate a
.envfile in thefinly-webappdirectory:# Backend API Configuration VITE_BASE_API_URL=http://localhost:8080 # Cloudinary Configuration (for image uploads) VITE_CLOUDINARY_CLOUD_NAME=your_cloudinary_cloud_name VITE_CLOUDINARY_UPLOAD_PRESET=your_upload_preset
Start the development server:
npm run dev
The frontend will be available at
http://localhost:5173 -
Backend Setup
Database Setup:
CREATE DATABASE finly_db; CREATE USER 'finly_user'@'localhost' IDENTIFIED BY 'your_password'; GRANT ALL PRIVILEGES ON finly_db.* TO 'finly_user'@'localhost'; FLUSH PRIVILEGES;
Environment Variables: Create environment variables or update
application.properties:# Database Configuration DB_URL=jdbc:mysql://localhost:3306/finly_db?useSSL=false&serverTimezone=UTC DB_Username=finly_user DB_Password=your_password # Email Configuration (Brevo SMTP) MAIL_USERNAME=your_brevo_username MAIL_PASSWORD=your_brevo_password MAIL_FROM[email protected] # JWT Configuration JWT_SECRET_KEY=your_jwt_secret_key_here # Frontend URL FiNLY_FRONTEND_URL=http://localhost:5173 # Activation Link FINLY_ACTIVATION_LINK=http://localhost:5173/activate
Build and run the backend:
cd finly-backend mvn clean install mvn spring-boot:runThe backend API will be available at
http://localhost:8080/api/v1.0
finly-webapp/ # Frontend React application
βββ public/ # Public assets
βββ src/
β βββ assets/ # Images and static files
β β βββ images/
β βββ components/ # Reusable UI components
β β βββ AddCategoryForm/ # Category management
β β βββ AddExpenseForm/ # Expense entry
β β βββ AddIncomeForm/ # Income entry
β β βββ Dashboard/ # Main dashboard
β β βββ Charts/ # Data visualization
β β βββ common/ # Shared components
β βββ pages/ # Main application pages
β β βββ Home/ # Dashboard page
β β βββ Income/ # Income management
β β βββ Expense/ # Expense tracking
β β βββ Category/ # Category management
β β βββ Login/ # Authentication
β β βββ Signup/ # User registration
β βββ context/ # React Context providers
β βββ hooks/ # Custom React hooks
β βββ util/ # Utility functions
βββ .env # Environment variables
βββ package.json # Dependencies and scripts
βββ vite.config.js # Vite configuration
finly-backend/ # Spring Boot backend
βββ src/
β βββ main/
β β βββ java/
β β β βββ com/
β β β βββ Minul/
β β β βββ finly_backend/
β β β βββ config/ # Configuration classes
β β β βββ controller/ # REST endpoints
β β β βββ dto/ # Data transfer objects
β β β βββ entity/ # Database entities
β β β βββ repository/ # Data access layer
β β β βββ security/ # Security config
β β β βββ service/ # Business logic
β β β βββ util/ # Utility classes
β β βββ resources/
β β βββ application.properties # Application configuration
β βββ test/ # Test files
βββ pom.xml # Maven dependencies
βββ Dockerfile # Container configuration
.env: Environment variables (API URLs, Cloudinary config)package.json: Dependencies and npm scriptsvite.config.js: Vite bundler configuration with TailwindCSSeslint.config.js: ESLint configuration for code qualitysrc/util/apiEndpoints.jsx: Centralized API endpoint definitionssrc/context/AppContext.jsx: Global state management with React Contextsrc/util/axiosConfig.js: Axios HTTP client configuration
application.properties: Environment-based configuration using${VAR}placeholderspom.xml: Maven dependencies and build configurationsrc/main/java/.../config/: Security, CORS, and database configurationssrc/main/java/.../security/: JWT authentication and authorizationDockerfile: Container deployment configuration
Frontend (.env):
VITE_BASE_API_URL: Backend API base URLVITE_CLOUDINARY_CLOUD_NAME: Cloudinary cloud name for image uploads
Backend (Environment Variables):
DB_URL,DB_Username,DB_Password: Database connectionMAIL_USERNAME,MAIL_PASSWORD,MAIL_FROM: Email service configurationJWT_SECRET_KEY: JWT token signing secretFiNLY_FRONTEND_URL: Frontend URL for CORS and email linksFINLY_ACTIVATION_LINK: Email activation link template
http://localhost:8080/api/v1.0
POST /login- User loginPOST /register- User registrationGET /activate- Account activationPOST /reset-email- Send password reset emailPOST /reset-password- Reset password
GET /profile- Get user profilePUT /profile- Update user profilePUT /profile/password- Change passwordGET /categories- Get user categoriesPOST /categories- Create new categoryGET /incomes- Get user incomesPOST /incomes- Add new incomeGET /expenses- Get user expensesPOST /expenses- Add new expenseGET /dashboard/dashboard-data- Get dashboard data
- Real-time Overview: Live financial status with automatic updates
- Interactive Charts: Line charts for trends, pie charts for category breakdowns
- Monthly Insights: Monthly financial performance tracking
- Recent Transactions: Quick access to latest income and expense entries
- Category Analysis: Visual breakdown of spending by category
- Income Tracking: Add, edit, and delete income entries with categories
- Expense Recording: Detailed expense tracking with custom categories
- Smart Categorization: Emoji-supported categories for better visual recognition
- Transaction History: Complete transaction history with filtering options
- Bulk Operations: Efficient management of multiple transactions
- Responsive Design: Mobile-first approach with TailwindCSS
- Real-time Notifications: Toast notifications for user actions
- Profile Management: Cloudinary-powered profile image uploads
- Email Integration: Automated email verification and password reset
- Secure Authentication: JWT-based authentication with refresh tokens
We welcome contributions to Finly Money Manager! Please feel free to submit issues and pull requests.
- 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
This project is licensed under the MIT License - see the LICENSE file for details.
Minul - GitHub Profile Email - Email_Me Project Link: https://github.com/Minulck/Finly-Money-Manager
