A full-stack financial analytics application built with React, Node.js, Express, and MongoDB. This application provides comprehensive transaction management, real-time analytics, and data visualization capabilities.
- Modern UI/UX: Beautiful, responsive design with Chakra UI components
- Dashboard Analytics: Real-time charts and statistics using Chart.js
- Transaction Management: Advanced filtering, sorting, and pagination
- Authentication: Secure login/register system with JWT
- CSV Export: Download transaction data in CSV format
- Responsive Design: Works seamlessly on desktop and mobile devices
- RESTful API: Complete CRUD operations for transactions
- JWT Authentication: Secure token-based authentication
- Advanced Filtering: Multi-field search and filtering capabilities
- Data Analytics: Revenue vs expenses analysis, category breakdowns
- CSV Export: Configurable column selection for data export
- MongoDB Integration: Optimized database queries with indexing
- Node.js (v14 or higher)
- MongoDB (local or cloud instance)
- npm or yarn
git clone https://github.com/PUSHKARDEORE/Finalytics.git
cd Finalyticscd backend
npm installCreate a .env file in the backend directory:
PORT=5000
MONGO_URI=mongodb://localhost:27017/finalytics
JWT_SECRET=your-super-secret-jwt-key-change-this-in-productionStart MongoDB and seed the database:
npm run seed
npm startcd frontend
npm installCreate a .env file in the frontend directory:
REACT_APP_API_URL=http://localhost:5000Start the frontend application:
npm startThe application will be available at:
- Frontend: http://localhost:3000
- Backend API: http://localhost:5000
| Variable | Purpose | Example |
|---|---|---|
PORT |
Server port number | 5000 |
MONGO_URI |
MongoDB connection string | mongodb://localhost:27017/finalytics |
JWT_SECRET |
Secret key for JWT tokens | your-super-secret-key |
| Variable | Purpose | Example |
|---|---|---|
REACT_APP_API_URL |
Backend API base URL | http://localhost:5000 |
Important:
- Never commit
.envfiles to version control - React environment variables must start with
REACT_APP_
POST /api/auth/register- Register new userPOST /api/auth/login- User loginGET /api/auth/protected- Protected route example
GET /api/transactions- Get transactions with filtering & paginationGET /api/transactions/stats- Get dashboard statisticsPOST /api/transactions/export- Export transactions to CSVGET /api/transactions/filters- Get available filter options
GET /api/health- Server health check
- Full-Stack Development: Complete frontend and backend implementation
- Database Design: MongoDB with proper schema design and indexing
- API Development: RESTful API with comprehensive endpoints
- Authentication: JWT-based secure authentication system
- Data Visualization: Interactive charts and analytics dashboard
- Data Export: CSV export functionality with custom column selection
- Search & Filtering: Advanced search across multiple fields
- Responsive Design: Mobile-friendly user interface
- Error Handling: Comprehensive error handling and validation
- Performance Optimization: Database indexing and query optimization
- JWT token-based authentication
- Password hashing with bcrypt
- CORS configuration for frontend integration
- Input validation and sanitization
- MongoDB injection protection
interface ITransaction {
id: number;
date: Date;
amount: number;
category: 'Revenue' | 'Expense';
status: 'Paid' | 'Pending';
user_id: string;
user_profile: string;
createdAt: Date;
updatedAt: Date;
}interface IUser {
email: string;
password: string;
createdAt: Date;
updatedAt: Date;
}Finalytics/
├── backend/ # Node.js/Express backend
│ ├── src/
│ │ ├── models/ # MongoDB models
│ │ ├── routes/ # API routes
│ │ ├── middleware/ # Authentication middleware
│ │ └── index.ts # Server entry point
│ ├── .env # Environment variables
│ └── package.json
├── frontend/ # React frontend
│ ├── src/
│ │ ├── components/ # React components
│ │ ├── services/ # API services
│ │ ├── context/ # React context
│ │ └── App.tsx # Main app component
│ ├── .env # Environment variables
│ └── package.json
└── README.md
Pushkar Deore - Full Stack Developer