"For this is the Ring of Water, and with it you may keep your realm fair and protected from the hurts of time"
Nenya is a personal financial management tool designed with simplicity and security in mind.
- Interactive financial data grid with spreadsheet-like functionality
- Real-time calculations and summaries
- Mobile-responsive design
- Secure data storage
- Frontend: Next.js with TypeScript
- Backend: FastAPI
- Database: PostgreSQL
- Infrastructure: OpenTofu (formerly Terraform Open Source)
- CI/CD: GitHub Actions with ArgoCD
- Observability: Argo Stack (Argo Workflows, Argo Events, Argo Rollouts)
- Cloud Provider: AWS
- LLM Integration: Open Source LLM (planning phase)
The project uses modern DevOps practices and tools:
- Infrastructure as Code (IaC) with OpenTofu
- GitOps deployment flow with ArgoCD
- Comprehensive observability with the Argo stack
- Container orchestration with Kubernetes
- Infrastructure monitoring and alerting
- Integration with open source LLMs for personalized financial insights
- Real-time data analysis and recommendations
- Privacy-focused approach: train on individual user data locally
- Natural language interface for data exploration and analysis
- Multi-region AWS deployment for high availability
- Kubernetes-based microservices architecture
- Zero-trust security model
- Data sovereignty and privacy compliance
- Core Financial Management Features
- Infrastructure Setup with OpenTofu
- CI/CD Pipeline Implementation
- Observability and Monitoring
- LLM Integration and Training
- Mobile Application Development
Key architectural decisions and their rationales:
- OpenTofu over Terraform Cloud: Open source flexibility and community alignment
- ArgoCD for GitOps: Kubernetes-native, declarative deployments
- AWS as primary cloud: Comprehensive services and market presence
- Open Source LLM: Data privacy and customization capabilities
- Python 3.11+
- Node.js 18+
- PostgreSQL
cd backend
python -m venv venv
source venv/bin/activate # or `venv\Scripts\activate` on Windows
pip install -r requirements.txt
gunicorn --config gunicorn.conf.py main:app
cd frontend
yarn install
yarn dev
Visit http://localhost:3000
to see the frontend application. Visit http:localhost:8000/docs
to see the Swagger docs.
This project is actively under development. Current focus is on building core financial management features with a spreadsheet-like interface while maintaining data security and user privacy.
Future enhancements will include:
- Cloud deployment
- Mobile app integration
- Enhanced visualization options
- Financial goal tracking
- Multi-user support
This project is currently in its early stages. If you're interested in contributing, please check back soon for contribution guidelines.
Apache License - See LICENSE file for details
Given your goal, here's a high-level breakdown of steps:
Frontend Table Component:
Interactive grid/table using a library like TanStack Table (formerly React Table) or AG Grid Ability to add/edit rows and columns Real-time calculations for sums/totals Basic styling and usability
Data Management:
State management for the table data API integration with our FastAPI backend Data validation before sending to backend Loading/error states
Database:
Set up PostgreSQL locally Create proper schemas Test data persistence
I suggest we start with step 1: creating a basic interactive table component in the Next.js frontend. Would you like me to show you how to set up TanStack Table with some basic editing capabilities? This will give us something tangible to work with before we tackle the data persistence. Or would you prefer to start with a different aspect of this plan?