Fina is a tool for managing personal finances by processing bank statements, analyzing transactions, and providing insights through an interactive interface.
- Python 3.8+
- Node.js and npm
- API keys for:
- OpenAI
- Pinecone
- LangSmith
- Veryfi (for PDF processing)
-
Open
pdf2json.pyand add your Veryfi API credentials:CLIENT_ID = "your_client_id" AUTH = "your_auth_token"
-
Run the PDF to JSON conversion:
python pdf2json.py
-
The script will output JSON data. Save this output to a new file in the
/backend/jsons/directory.
-
Create and configure your environment variables:
touch .env
-
Add the following variables to the
.envfile:OPENAI_API_KEY=your_openai_api_key PINECONE_API_KEY=your_pinecone_api_key LANGSMITH_API_KEY=your_langsmith_api_key -
Install required Python dependencies:
pip install -r requirements.txt
Or if you're using Pipenv:
pipenv install
-
Start the FastAPI server:
fastapi dev backend/main.py
-
Navigate to the frontend directory:
cd frontend -
Install dependencies:
npm install
-
Start the development server:
npm run dev
-
Access the application at
http://localhost:3000
/backend- FastAPI backend service/jsons- Processed bank statement data/models- Data models/routes- API endpoints/services- Business logic services
/frontend- Next.js web application/app- Frontend pages/components- Reusable UI components/models- TypeScript data models