Solvio - Code:You Capstone Project
Solvio is a personal finance management application built with React and Supabase. Designed with a mobile first approach and a Bento Style UI, it helps users track their income, expenses, and overall financial health through an intuitive dashboard with visual analytics and charts. The app goal is to automatize to the maximum the process of entering data by the user without the need of linking the app to their bank account. Solvio allows the user to upload a .CSV file provided by their bank institution with their statements. Using different functions depending on the format of the file, it processes the data and returns a standarized format to be stored in the database. Each bank has a different .CSV format, the app currently supports Capital One credit and debit statements, but it is designed to be easily extended to support other banks, that is one of the objetives for future versions. Solvio integrates with an AI API to categorize the transactions automatically, it also allows the user to do it manually.
- Analyze data that is stored in arrays, objects, and sets, and get relevant information from it to use in the app.
- Visualize data in a user friendly way, using charts and tables.
- Calculate and display data based on current date.
- Interact with a PostgreSQL database on Supabase to store and retrieve information.
- Implement modern interactive UI features (tables, data sorting, charts).
- Project developed using React.
- Frontend: React 19, Vite
- Styling: Tailwind CSS 4
- Charts: Recharts
- Backend: Supabase (PostgreSQL database, authentication)
- AI Integration: ??????
- CSV Processing: PapaParse to process .csv files getting an array of objects.
Before you begin, ensure you have the following installed:
npm install- Create a new project at supabase.com
- Go to your project settings and copy the following credentials:
- Project URL
- Anon (public) key
Create a .env file in the root directory:
Add the following environment variables:
VITE_SUPABASE_URL=your_supabase_project_url
VITE_SUPABASE_ANON_KEY=your_supabase_anon_key- In your Supabase dashboard, go to the SQL Editor
- Copy and paste the contents of the database/schema.sql file from the project, then run the script to create the tables.
- In your Supabase dashboard, go to Authentication > Sign In / Providers.
- Configure your authentication providers, I used email but you can use other providers.
npm run devThe application will be available at http://localhost:5173
Solvio/
├── database/
│ ├── schema.sql # Database tables and initial data
├── public/ # Static assets (layout.png)
├── src/
│ ├── components/ # React components
│ │ ├── accounts/ # Account management components
│ │ ├── home/ # Dashboard and charts components
│ │ └── navbar/ # Navigation components
│ ├── context/ # React context for state management
│ ├── supabase/ # Supabase client configuration
│ └── assets/ # Images and other assets (logo.png)
├── package.json # Dependencies and scripts
└── vite.config.js # Vite configuration