Link to demo video:
Our project is a simple and smart app that makes it easy to keep track of your receipts and manage your money. Since the popular app Mint closed down, there's a gap in the market for a good financial tool. Our app fills this gap.
Here's what it does:
- Scan Receipts Easily: Just scan your receipts with the app. It uses OpenAI's technology to read and store them quickly.
- Stay On Budget: The app shows you where your money goes, helping you stick to your budget.
- Ask Questions: Got questions about your spending? Ask the app's finance assistant for help.
In short, our app makes it easy to track your spending and get better at managing your money.
- Framework - Next.js 13
- Language - TypeScript
- API Endpoints - tRPC
- Auth - Clerk
- Database - PlanetScale
- Deployment - Vercel
- Styling - Tailwind CSS
- Components - Tremor & Shadcn
- ORM - Drizzle
- Linting - ESLint
- Formatting - Prettier
Create an developer account with PlanetScale, Clerk, UploadThing & OpenAI and then fill your keys in the .env.example file after renaming it to .env.local
- Clone the 307-project repository:
git clone https://github.com/arnenoori/307-project
- Install the dependencies with one of the package managers listed below:
npm install
- Start the development mode:
npm run dev
Style guidelines:
Arrow Function Parentheses- Always include parentheses around a sole arrow function parameter
Quotes- Use single quotes instead of double quotes
Tab Width- Specifys the number of spaces per indentation-level, we are doing 2
Trailing Commas- No trailing commas
Prettier Installation:
Install through VS Code extensions. Search for Prettier - Code formatter
Or
Can also be installed in VS Code: Launch VS Code Quick Open (Ctrl+P), paste the following command, and press enter.
ext install esbenp.prettier-vscode
Last Updated: 12/7/23
-
Cypress: We attempted to test our website using Cypress, but almost all of our functionality is accessible only after signing in through clerk auth. Although we spent a dozen or so hours trying to get past auth, we couldn't figure out how to log in through either GitHub or google through clerk.
-
Pytest: We have pytests for the majority of our old backend code in backend-old/testing, which amounts to 2500+ lines of code.
Although we didn't fully complete either of the testing options, we hope that the combination of the two will suffice for this project.
pip install pytest
pytest : pytest
pip install coverage
coverage run -m pytest
npm install cypress
npx cypress open
Select E2E testing
Select chrome
Select either spec.cy.ts or spec.cy.js