Track That Dough is a comprehensive expense tracking web application designed to help users manage their personal and team finances effectively. The app provides a user-friendly interface and robust features tailored to three distinct user roles: User, Manager, and Admin. Each role comes with specific permissions and functionalities to ensure a seamless experience.
- Dashboard: Displays an overview of personal expenses with statistics on total, yearly, monthly, and weekly spending.
- Visualizations:
- Line Graph: Tracks monthly spending trends over time.
- Radar Graph: Shows the distribution of expenses by category.
- Expense Management:
- Create, edit, and delete personal expenses (name, amount, date, and category).
- Team Overview: View a list of team members and their total spending.
- Reports: Generate and download Excel reports summarizing team expenses.
- User Management:
- Approve new user registrations.
- Promote or demote users between User and Manager roles.
- Delete users.
- Team Management:
- Create, edit, and delete teams.
- Assign managers to teams (each team can have only one manager).
- Category Management:
- Create, edit, and delete expense categories (category names must be unique).
- Docker
- Make
-
Clone the repository:
git clone https://github.com/Matios102/WebAppProject cd WebAppProject -
Build and start the application using Docker:
docker-compose up --build
-
Access the application in your browser at
http://localhost:3000.
To run the unit tests, use the following command:
make unit-test- New users can register through the app.
- Admins must approve new registrations before users can log in and start using the app.
- Users can manage their expenses by adding, editing, or deleting entries.
- Each expense includes:
- Name: A short description of the expense.
- Amount: The cost of the expense.
- Date: The date the expense was incurred.
- Category: A predefined category assigned by the Admin.
- Managers can view their team’s expenses and download detailed reports in Excel format.
Admins are responsible for:
- Approving new users.
- Managing teams and assigning managers.
- Creating and managing categories.
You can log in as different roles using the following credentials:
- Admin:
admin@admin.com, password:admin - Manager:
manager@manager.com, password:manager - User:
user@user.com, password:user
These accounts come preloaded with sample data for testing purposes.
.
├── backend/
│ ├── Dockerfile.backend
│ ├── requirements.txt
│ ├── wait-for-it.sh
│ └── app/
│ ├── __init__.py
│ ├── database.py
│ ├── main.py
│ ├── models.py
│ ├── core/
│ ├── repositories/
│ ├── routers/
│ ├── schemas/
│ └── utils/
├── frontend/
├── tests/
│ ├── test_auth.py
│ ├── test_category.py
│ ├── test_expense.py
│ ├── test_team.py
│ └── test_user.py
├── docker-compose.yml
├── Makefile
└── README.md






