A modern expense tracking application built with Next.js, TypeScript, MongoDB, and shadcn/ui.
- Authentication: Hardcoded login (susmita@nishant.com / Susmita@123)
- Expense Management: Add, edit, delete expenses with categories and dates
- Category Management: Full CRUD operations for expense categories
- Reports & Analytics:
- Daily, weekly, and monthly expense reports
- Visual charts (bar charts, pie charts)
- Category-wise breakdown
- Export functionality
- Modern UI: Built with shadcn/ui components and Tailwind CSS
- Responsive Design: Works on desktop and mobile devices
- Frontend: Next.js 16, React 19, TypeScript
- Styling: Tailwind CSS, shadcn/ui
- Database: MongoDB
- Charts: Recharts
- Authentication: JWT with HTTP-only cookies
- Node.js 18+
- MongoDB (local or cloud instance)
-
Run the setup script (this will install all required shadcn components and dependencies):
.\setup.ps1
-
Configure environment variables: Update
.env.localwith your MongoDB connection string:MONGODB_URI=mongodb://localhost:27017/expense-tracker NEXTAUTH_URL=http://localhost:3000 NEXTAUTH_SECRET=your-secret-key-here NODE_ENV=development
-
Start the development server:
npm run dev
-
Access the application: Open http://localhost:3000 in your browser
- Email: susmita@nishant.com
- Password: Susmita@123
- Overview cards showing today's, weekly, and monthly expenses
- Quick add expense button
- Tabbed interface for expenses, reports, and categories
- Add new expenses with amount, category, date, and description
- Edit existing expenses
- Delete expenses
- Filter by category and date range
- Pagination for large expense lists
- Create custom expense categories
- Edit category details (name, description, color)
- Delete categories (with validation)
- Color-coded categories for better organization
- Daily Reports: Track daily spending patterns
- Weekly Reports: Weekly expense summaries
- Monthly Reports: Monthly spending analysis
- Visual Charts:
- Pie charts for category breakdown
- Bar charts for daily spending trends
- Export: Download reports as CSV files
POST /api/auth/login- User loginPOST /api/auth/logout- User logoutGET /api/auth/me- Get current user
GET /api/categories- Get all categoriesPOST /api/categories- Create categoryPUT /api/categories/[id]- Update categoryDELETE /api/categories/[id]- Delete category
GET /api/expenses- Get expenses (with pagination and filters)POST /api/expenses- Create expensePUT /api/expenses/[id]- Update expenseDELETE /api/expenses/[id]- Delete expense
GET /api/reports- Generate reports (daily/weekly/monthly)
The application automatically initializes with sample categories and expenses when first accessed.
- Create component in
src/components/ - Add necessary shadcn/ui components:
npx shadcn@latest add [component-name] - Import and use in your pages
- Set up MongoDB production instance
- Update environment variables
- Build the application:
npm run build - Start production server:
npm start