CS180 Group Project
Manage user's budgets and maximize credit card rewards by tracking spending
Our presentation slides will help you understand this project in under 5 minutes!
Authors
Many Americans face numerous financial challenges under certain circumstances, particularly during the pandemic. A large group of cardholders can’t pay their credit card bill in one, resulting in them paying high interest fees. On the other hand, many cardholders may or may not be able to pay their bill in one, but those who use only a single or a very few number of cards miss out on potential rewards that would have been earned by using more suitable cards for specific categories, such as groceries, gas, and dining. Our web app addresses both problems separately and together: a budget tracker to reduce interest costs, and a card-rewards optimizer to help users earn more on ordinary spending.
To run this project on your local PC:
- Python 3.x
- Node.js and npm
- Git
git clone https://github.com/btaquee/CardSense.git
Django
Note that Django need run under virtual environment!
# Create virtual environment
python -m venv venv
# Activate it
.\venv\Scripts\Activate.ps1 # Windows
source venv/bin/activate # macOS/Linux
# Install Django and API dependencies
pip install Django
pip install djangorestframework django
pip install django-cors-headers
pip install django-multiselectfieldReact
# Switch to `web` folder
cd web
# Install React dependencies
npm install
In order to run the website, you need TWO terminal windows running simultaneously:
- First running frontend:
npm start
Website should live on http://localhost:3000/.
- Open a new terminal, now run backend:
use cd .. swtich to Cardsense/ folder, then run backend
python manage.py runserver
Important Notes
Common Mistake: Make sure you run commands from the correct directory:
- Django commands: Run from
CardSense/(project root) - React commands: Run from
CardSense/web/(web folder)
Primarily for developers' purposes, but if you want to know the structure of this project and the skill set.
CardSense/
│
├─ api/ # Django PROJECT (global config/container)
│
├─ accounts/ # Django APP: authentication & user management
├─ transactions/ # Django APP: user transactions (manual/CSV), CRUD, signals
├─ budgets/ # Django APP: single monthly budget per user + alert thresholds/events
├─ cards/ # Django APP: card products and reward rules
├─ optimizer/ # Django APP: best-card recommendation engine (service endpoints)
│
├─ web/ # React web app (the UI)
│
├─ venv/ # Python virtual environment (local only; not shared)
├─ db.sqlite3 # Dev database (local)
├─ manage.py # Django CLI helper (runserver, migrate, etc.)
└─ README.md # Project overview & quickstartPrimarily for developers' purposes, but it contains many helpful resources that help you understand this project more, or even build on it.
Some frontend resource:
