A web-based application that assists teams in managing their budgets, tracking their expenses, and processing reimbursements.
Table of Contents
This project is a web application designed to streamline budget management, expense tracking, and reimbursement processing for teams. Its development stemmed from the realisation that my church's ministries lack a centralised system for managing budgets and tracking expenses, hindering effective financial management and transparency within the church.
As a result, volunteers often face difficulties accessing information about allocated budgets and the status of their reimbursement requests. Additionally, ministry leaders struggle to keep track of approved or rejected budget requests.
By centralising these processes, we aim to improve transparency, efficiency, and accountability within the organisation.
- Set up Github Actions to test code on push to feature branches.
- Set up Github Actions to build docker image and deploy to Digital Ocean on push to dev branch
- Implemented user authentication
- Allow users to reset their passwords via "Forgot my Password"
- Role-based user permissions
- Invite New Users
- Delete Users
- Update User Roles
- Manage Budgets ( <== Current )
- Create Budgets
- Edit Budgets
- Delete Budgets
- Submit budget items
- Approve budget items
- Reject budget items
- Delete budget items
- Manage Expenses
- Submit an Expense
- Reject an Expense
- Fulfil an Expense
- Delete an Expense
- Manage User Details
- Update First name
- Update Last Name
- Update Email
- Update Password
- Manage Bank Details
- Create Bank Details
- Delete Bank Details
- User Dashboard
- See Pending budget items
- See Pending expenses
- See Announcements
See the open issues for a full list of proposed features (and known issues).
To get a local copy up and running follow these steps.
You'll need to install the Supabase CLI and setup a local instance of supabase using Docker. Follow these instructions to get started.
Once installed, run your local instance of Supabase and take note of its:
- project url
- anon key
- service role key
These are displayed on your terminal after you start your local supabase instance.
- Clone the repo
git clone git@github.com:alecntan/BudgetBuddy.git
- Install NPM packages
npm install
- Enter your project details in
.env.developmentNEXT_PUBLIC_SUPABASE_URL = <PROJECT_URL> NEXT_PUBLIC_SUPABASE_ANON_KEY = <ANON_KEY> APP_DOMAIN = http://localhost:3000 SERVICE_ROLE_KEY = <SERVICE_ROLE_KEY>
The app is seeded with test accounts on startup. You can find these accounts in the supabase/seed.sql file.
-
Start Docker Desktop and run your local supabase instance
supabase start
-
Visit
http://localhost:3000 -
Login using the accounts found in
supabase/seed.sqlfile
Distributed under the BSD 3-Clause License. See LICENSE.txt for more information.
