- ✅ Roll based authentication system (RBAC)
- ✅ Support for creating teams and organizations
- ✅ Creating and editing budgets
- ✅ Collaboration on budgets with teams
- ✅ Uploading invoices for expenses
- 🚧 Seamless approval system from admins & authorities
- 🚧 Tagging expenses
- 🚧 Statistics & analytics
- Node.js
16.x
- MongoDB
v5.x
- S3 bucket and keys with proper access if you want to upload invoices
- Patience =)
- Clone the repo
git@github.com:minty-gang/budjet.git
- Make sure to start a local instance of MongoDB
- Install backend dependencies and run the API server
This should show the following message
cd backend npm i && npm start
Connected to MongoDB Succesfully API running at port 5000
- Install frontend dependencies and run the server
cd frontend npm i && npm run dev
- The app can now be accessed at http://localhost:3000
The API is designed with a RESTful approach keeping in mind declarative approach for resources. The whole RBAC system was designed and achieved with middleware patterns.
The server and the static site are hosted on Render.
- Backend
- Node.js
- Express.js
- MongoDB as database
- Frontend
- React.js
- Chakra UI as a component library
- Formik for forms
- Yup for validation
- React Icons
- Ky for API
- Wouter for routing
- Google for authentication
- Illustrations from Storyset
- Logo generated with Dall-E
We are honestly shocked that we were actually able to complete the project to this extent, even if it may not seem much. We really wanted to implement fully until the approval features but couldn't do it.
Anyway, we had a few plans with the project (along with making it more appealing and optimised, of course) and we present them here:
- Sharing of budgets
- More minute control of resources
- More frontend features to sort/filter the budget
- Import budgets from CSV/Spreadsheet
All in all we had fun in our first hackathon of our lives! Go, TechSoc!