Skip to content

arnenoori/receipts-full-stack

Repository files navigation

Link to demo video:

Video

GitHub contributors GitHub issues GitHub pull request

Project Blurb

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:

  1. Scan Receipts Easily: Just scan your receipts with the app. It uses OpenAI's technology to read and store them quickly.
  2. Stay On Budget: The app shows you where your money goes, helping you stick to your budget.
  3. 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.

🔍 Table of Contents

💻 Stack

⚙️ Setting Up

Your Environment Variable

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

🚀 Run Locally

  1. Clone the 307-project repository:
git clone https://github.com/arnenoori/307-project
  1. Install the dependencies with one of the package managers listed below:
npm install
  1. Start the development mode:
npm run dev

Contributing Guide

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

UI Prototype

Alternative Text for Image

Alternative Text for Image

Alternative Text for Image

UI Prototype

UML

Screenshot 2023-12-07 at 10 46 11 PM 2

Last Updated: 12/7/23

Testing

  1. 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.

  2. 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.

Instructions for pytests:

pip install pytest

pytest : pytest

pip install coverage

coverage run -m pytest

Instructions for cypress:

npm install cypress

npx cypress open

Select E2E testing

Select chrome

Select either spec.cy.ts or spec.cy.js