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
![Screenshot 2023-12-07 at 10 46 11 PM 2](https://private-user-images.githubusercontent.com/81613773/288988522-c85d8ad8-e86c-49d7-8ef9-698315323f42.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjA0NzMxNjcsIm5iZiI6MTcyMDQ3Mjg2NywicGF0aCI6Ii84MTYxMzc3My8yODg5ODg1MjItYzg1ZDhhZDgtZTg2Yy00OWQ3LThlZjktNjk4MzE1MzIzZjQyLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDA3MDglMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQwNzA4VDIxMDc0N1omWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTA3MzgzNGVkNGExNmY4YmZmNWY2MzFlZmQ1NDU0NWFmOTc2YzFiMmNjM2Q0ZWJiMWQxYWJjMjdlNmJkMzlkY2UmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JmFjdG9yX2lkPTAma2V5X2lkPTAmcmVwb19pZD0wIn0.52Aa9TT-u0o5mhRsNZE4buTrmir52PmtjOE-upKWUZs)
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