Fundora is a full-stack web application designed to help users manage project-based fund tracking, record expenses and incomes, upload receipts, and generate PDF/CSV reports — all in a visually intuitive dashboard.
Built for teams, students, and professionals handling fund-based projects (like college clubs, events, or research groups), Trackaholic offers robust financial visibility, transparency, and ease of use.
- User registration and login with JWT token-based authentication
- Role-based access protection (e.g., project members vs creators)
- Create, update, and delete projects
- Assign multiple phases and track them individually
- Add, edit, delete expenses/incomes tied to specific projects and phases
- Upload receipts (image or PDF)
- Categorize and filter by date, phase, or type
- Upload receipts via forms
- Securely download them when needed
-
View fund balance, total spent, and income per project
-
Export project reports as PDF or CSV using:
jspdf
html2canvas
react-csv
-
Clean charts powered by Recharts
- React Router DOM
- Axios
- Recharts
- jsPDF + html2canvas + react-csv
- Tailwind CSS
- MongoDB (via Mongoose)
- JWT for authentication
- Multer for file uploads
- RESTful API design
- MongoDB Atlas
/frontend/trackaholic/
├── src/
│ ├── pages/
│ ├── components/
│ ├── layouts/
│ └── utils/
└── public/
Backend
/backend/
├── routes/
├── controllers/
├── models/
├── middleware/
└── uploads/ ← Stores user-uploaded receipts
git clone https://github.com/Harinee2501/Fundora.git
cd trackaholic
cd backend
npm install
Create a .env
file in /backend/
:
PORT=5000
MONGO_URI=your_mongodb_connection_string
JWT_SECRET=your_secret_key
Start the backend:
npm run dev
cd frontend/trackaholic
npm install
npm run dev
All backend routes are prefixed with: /api/v1/
Endpoint | Method | Description |
---|---|---|
/auth/register |
POST | Register user |
/auth/login |
POST | Login user |
/projects/ |
GET/POST | Fetch or create projects |
/projects/:projectId/expenses |
GET/POST | Get or add expenses |
/projects/:projectId/incomes |
GET/POST | Get or add incomes |
/expenses/:id/receipt |
GET | Download receipt |
Auth middleware protects all sensitive routes.
# Frontend
node_modules/
dist/
.env
# Backend
node_modules/
uploads/
.env
# System files
.DS_Store
Thumbs.db
- Add email verification
- Export full project summary as a zip
- Admin analytics dashboard
- Dark mode toggle