CoinCoach is a comprehensive financial management application built with Node.js, Express.js, and MongoDB. It helps users track transactions, set financial goals, gain insights into spending habits, manage bills, and interact with AI-powered features for personalized financial advice.
Many people struggle with managing their personal finances effectively, leading to poor spending habits, missed bill payments, and unachieved savings goals. CoinCoach addresses this by providing an intuitive platform that combines transaction tracking, AI-driven insights, and educational tools to empower users to take control of their financial future.
CoinCoach helps users build essential financial literacy skills by providing clear, actionable insights into their spending patterns and financial health. Users learn to understand concepts like budgeting, expense tracking, bill management, and goal setting through interactive tools and AI-powered explanations. This education is crucial because financial literacy directly impacts long-term wealth building, reduces financial stress, and enables better decision-making for major life purchases like homes, cars, and retirement planning.
- User Authentication: Secure registration, login, logout, and password reset functionality with rate limiting.
- Transaction Management: Create, view, edit, delete, and bulk upload transactions (CSV/JSON support).
- Financial Goals: Set and track progress towards financial goals with AI-powered updates.
- Insights: Generate personalized financial insights using AI to analyze spending patterns.
- Bill Management: Track and predict bills with automated email alerts.
- Currency Conversion: Convert between different currencies for international transactions.
- Chat AI: Interact with an AI assistant for financial advice and queries.
- Receipt Analysis: Upload and analyze receipts using OCR and AI.
- Export Data: Export financial data to Excel or PDF formats.
- Dashboard: Personalized user dashboard with financial summaries.
- Backend: Node.js, Express.js
- Database: MongoDB with Mongoose ODM
- Authentication: Passport.js with Local Strategy
- Templating: EJS
- File Uploads: Multer
- AI Integration: Groq SDK for AI features
- Email: Nodemailer for notifications
- Image Processing: Sharp, Tesseract.js for OCR
- Validation: Joi
- Security: Helmet, Express Rate Limit, XSS protection
- Other: Cloudinary for image storage, ExcelJS for exports, PDFKit for PDFs
-
Clone the repository:
git clone https://github.com/DevOlabode/coincoach cd coincoach -
Install dependencies:
npm install
-
Set up environment variables: Create a
.envfile in the root directory with the following variables:PORT=3000 MONGODB_URI=mongodb://localhost:27017/coincoach SESSION_SECRET=your-session-secret CLOUDINARY_CLOUD_NAME=your-cloudinary-name CLOUDINARY_KEY=your-cloudinary-key CLOUDINARY_SECRET=your-cloudinary-secret EMAIL_USER=your-email@example.com EMAIL_PASS=your-email-password GROQ_API_KEY=your-groq-api-key -
Start the application:
npm start # or for development npm run dev -
Open your browser and navigate to
http://localhost:3000
- Registration: Create an account with email and password.
- Complete Profile: Fill in additional details like full name, display name, and preferred currency.
- Add Transactions: Manually add transactions or bulk upload via CSV/JSON.
- Set Goals: Create financial goals and track progress.
- View Insights: Analyze spending patterns with AI-generated insights.
- Manage Bills: Add bills and receive automated alerts.
- Chat with AI: Ask financial questions to the AI assistant.
- Export Data: Download financial reports in Excel or PDF format.
GET /- Home pageGET /register- Registration formPOST /register- Register userGET /login- Login formPOST /login- Login userPOST /logout- Logout userGET /enter-email- Password reset email formPOST /send-reset-code- Send reset codeGET /confirm-code- Confirm reset code formPOST /confirm-code- Confirm reset codeGET /reset-password- Reset password formPOST /reset-password- Reset password
GET /transactions- List all transactionsGET /transactions/new- New transaction formPOST /transactions- Create transactionGET /transactions/:id- Show transactionGET /transactions/:id/edit- Edit transaction formPATCH /transactions/:id- Update transactionDELETE /transactions/:id- Delete transactionGET /transactions/bulk-upload- Bulk upload formPOST /transactions/bulk-upload- Bulk upload CSVGET /transactions/bulk-json- Bulk upload JSON formPOST /transactions/bulk-json- Bulk upload JSON
/user/*- User profile management/goals/*- Goal setting and tracking/insights/*- Financial insights/conversion/*- Currency conversion/chat/*- AI chat sessions/reciept/*- Receipt analysis/export/*- Data export/- Bill management
coincoach/
├── config/ # Database, email, session configuration
├── controllers/ # Route handlers
├── models/ # Mongoose schemas
├── routes/ # Express routes
├── services/ # Business logic and external services
├── utils/ # Utility functions
├── views/ # EJS templates
├── public/ # Static assets (CSS, JS, images)
├── uploads/ # Temporary file uploads
├── middleware.js # Custom middleware
├── index.js # Application entry point
└── package.json # Dependencies and scripts
- Fork the repository
- Create a feature branch:
git checkout -b feature-name - Commit changes:
git commit -am 'Add feature' - Push to branch:
git push origin feature-name - Submit a pull request
This project is licensed under the ISC License.
For support or questions, please open an issue on the GitHub repository.