This repo is an incubator for seamlessly integrating our ideas and publishing public facing versions. We will continue to improve and add more functionalities and tools as time goes
PayTrack is a modern, full-stack web application designed to help you take control of your finances. Track your income and expenses, set monthly budgets, and visualize your financial habits with clear, insightful reports. This entire application was bootstrapped using MetaGPT, showcasing the power of AI-driven development to rapidly build production-ready software.
- Secure User Authentication: Sign up and log in securely, powered by Supabase Auth.
- Intuitive Dashboard: Get an at-a-glance summary of your monthly income, expenses, balance, and recent transactions.
- Comprehensive Transaction Management: Full CRUD (Create, Read, Update, Delete) functionality for all your income and expense transactions.
- Customizable Categories: Create and manage personalized categories for both income and expenses to organize your finances precisely.
- Effective Budget Planning: Set monthly budgets for different expense categories and visually track your spending against them.
- Insightful Financial Reports: Visualize your financial data with dynamic charts showing monthly spending breakdowns, top spending categories, and savings progress.
- Fully Responsive Design: A clean, modern UI that works beautifully on both desktop and mobile devices.
This project leverages a modern, robust technology stack to deliver a high-quality user experience.
-
Frontend:
- React: A JavaScript library for building user interfaces.
- Vite: A next-generation frontend tooling for fast development.
- Tailwind CSS: A utility-first CSS framework for rapid UI development.
- React Router: For client-side routing.
- Recharts: A composable charting library for React.
-
Backend (Powered by Supabase):
- Supabase: The open-source Firebase alternative.
- Database: Supabase-hosted PostgreSQL.
- Authentication: Supabase Auth for managing users.
- APIs: Auto-generated, secure APIs provided by Supabase.
Follow these steps to get a local copy of PayTrack up and running on your machine.
- Node.js: Make sure you have Node.js (v16 or higher) and npm/yarn installed.
- Supabase Account: You will need a free Supabase account. Create one here.
git clone https://github.com/PolymathCorp/cocoon.git
cd paytracknpm install
# or
yarn install-
Create a New Supabase Project:
- Go to your Supabase Dashboard and click "New project".
- Give your project a name (e.g., "PayTrack") and create a secure database password.
-
Set Up Environment Variables:
- In the root of your cloned project, create a file named
.env. - Copy the contents of
.env.exampleinto.env. - In your Supabase project, go to Project Settings > API.
- Copy the Project URL and the anon (public) API Key.
- Paste these values into your
.envfile:VITE_SUPABASE_URL="YOUR_SUPABASE_PROJECT_URL" VITE_SUPABASE_ANON_KEY="YOUR_SUPABASE_ANON_PUBLIC_KEY"
- In the root of your cloned project, create a file named
-
Create the Database Schema:
- In your Supabase project, navigate to the SQL Editor from the sidebar.
- Click "+ New query".
- Copy the entire SQL script from the
schema.sqlfile in this repository and paste it into the editor. - Click "RUN". This will create the
categories,transactions, andbudgetstables and set up the necessary security policies.
Now that your environment is configured, you can start the development server.
npm run dev
# or
yarn devOpen your browser and navigate to http://localhost:5173 (or the port specified in your terminal). You should see the PayTrack login page.
The project follows a standard React application structure to keep the codebase organized and maintainable.
/
├── public/ # Static assets
├── src/
│ ├── assets/ # Images, fonts, etc.
│ ├── components/ # Reusable UI components (Button, Card, Input)
│ ├── context/ # React context for state management (e.g., Auth)
│ ├── hooks/ # Custom React hooks
│ ├── pages/ # Top-level page components (Dashboard, Login, etc.)
│ ├── services/ # Logic for interacting with the Supabase API
│ └── App.jsx # Main application component with routing
│ └── main.jsx # Entry point of the application
├── .env.example # Example environment variables
├── package.json
└── README.md
Contributions are what make the open-source community such an amazing place to learn, inspire, and create. Any contributions you make are greatly appreciated.
- Fork the Project.
- 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.
Please open an issue first to discuss any major changes you would like to make.
This project is distributed under the MIT License. See LICENSE for more information.
- Supabase: For providing a powerful and easy-to-use backend solution.
- You: For taking the time to explore PayTrack!
