Feature on Progress: --
Features left before v0.2.0 release: TBD
Why • Features • Documentation • How • Contributing
Transact is an application designed to help users track their expenses, income, and overall financial status. It provides a convenient way to categorize and visualize financial data through graphs.
Transact is an offline-first account tracking application designed for people who prefer an offline, set it and leave it approach to managing their assets.
It allows users to record their expense and income and assign them to specific categories, transfer money between accounts in a straightforward manner, and gain insights into their habits and identify areas where they can potentially save cash.
In addition to tracking individual expenses and income, the app also calculates the net amount, which represents the difference between the total income and total expenses. This allows users to see their overall financial status at a glance.
One of Transact's key features is its ability to generate graphs and charts based on the recorded data. These visual representations provide a clear overview of the user's financial situation over time. Users can choose different time bounds and present them in different graphs, such as bar charts or pie charts, to visualize their expenses and income in a way that is easy to understand.
- PWA Capability: Download the app for offline-use. No need to connect to the internet.
- Transaction Tracking: Track your income, expenses, and transfers in one app.
- Accounts Support: Set up multiple accounts resembling your money storage(banks, wallets, etc.).
- Customizable Currency: Choose your currency from the list of supported currencies.
- Recurring Transactions: Automate your transactions by setting them as Daily, Weekly, or Monthly.
- Data Visualization: See your data presented as graphs and charts.
This app is an offline-first app, meaning you can use it without internet. However, this does pose many security risks:
- Your financial data is stored in an IndexedDB database, which is a huge security risk. Use this app as intended, and do not create transactions with crucial information such as real names, your bank account details, etc.
- This is not a budgeting or an accounting application, if you need those features, please check other apps like YNAB.
Check out our Wiki for more information.
You can find the software's data flow here.
- Software Design
- Data Design for Visualizations
- System Architecture
- Coding Conventions
- Style Guide
- Testing Guide
transact/
├── docs/
│ ├── conventions/
│ │ ├── coding_conventions.md
│ │ └── best_practices_in_next.md
│ ├── design/
│ │ ├── software_design.md
│ │ ├── database_design.md
│ │ ├── data_design_for_visualizations.md
│ │ └── system_architecture.md
│ ├── diagrams/...
│ ├── discussion/
│ │ └── component_folder_organization.md
│ ├── style/
│ │ └── style_guide.md
│ ├── Plan.erd
│ ├── Requirements.todo
│ ├── CHANGELOG.md
│ └── ...
├── src/
│ ├── app/
│ └── ...
├── README.md
├── LICENSE
└── ...
Important
If you want to contribute, please take a look at the Requirements file and afterward, make an issue detailing what feature do you want to develop. Help is always appreciated! :)
This project is an offline-first based app which means you can easily run and use the application with a few commands:
- Clone the project by using:
git clone https://github.com/ssanjose/transact.git
# or
git clone (your-forked-repo)
- Go to the directory and run the development server:
Note
Go into the folder with cd ./transact
npm run dev
# or
yarn dev
# or
pnpm dev
# or
bun dev
Open http://localhost:3000 with your browser to see the result.
This project uses next/font
to automatically optimize and load Inter, a custom Google Font.
To learn more about the tools used in the app, take a look at the following resources:
- Next.js Documentation - learn about Next.js features and API.
- shadcn/ui Documentation - a collection of re-usable components that can be copy and pasted into your apps.
- Tailwind Documentation - a utility-first CSS framework that can be use directly in your markup.
Soon to be deployed with Vercel.