Purple is a budget and expense tracker mobile app I'm currently building for personal use. I was inspired to build Purple because after I made the switch to Android, I couldn't find a budget app that I liked. I wanted something simple, clean, and easy to use, which was hard to find on Android. So I decided to build my own, and to use this as an opportunity to further polish my React Native skills.
purple/: Contains the Expo-based React Native app.nucleus/: Contains the Go backend using Gin and GORM with PostgreSQL.orbit/: Contains the React frontend for the landing page & future web app.
Purple is the frontend for the budget and expense tracker app. It's built with React Native using the Expo SDK. Yeah, I know, naming the frontend for Purple, (drumroll.....) Purple.
Some Inspiration for the design was taken from here.
Since I'm primarily an android user, that is my only target. However since React Native is cross-platform the app should work fairly well on iOS devices as well, but I'm not so worried about optimising for certain iOS devices like the phones without a notch or dynamic whatevers.
For now Purple is going to work exclusively offline, probably going to use sqlite3 for handling local database operations, once I figure out which direction this project is gonna go I may consider building a backend to allow for online syncing.
Here are a few screenshots of the app so far:
Since this application uses the expo-sdk and is built with React Native, building the app is fairly simple. You can follow the steps below to build the app:
- Clone the repository
- cd into the project directory
- Run
yarn installto install all the dependencies - To build for Android, you have to have your Android development environment set up
- Run
eas build -p android --profile preview --local --output purple.apkto build the app for an android target OR you can use the GitHub action provided which builds the apk and creates a new release for it, so you can just download the.apkfile contained in the build artifact.zipfile directly from the action run. You must have android sdk tools installed to run a local build.
- Run
Right now, Purple is still just a pet project, I'm not entirely sure I have the direction I want to take it in. But I do have a few ideas in mind (in no particular order):
[ ] Adding recurring transactions 🔄 [ ] Session Recording & Tracking 📹 (Trust me bro it's for analytics only I swear bro 🥺👉👈) [ ] Dark Mode 🌚 [ ] Search functionality 🔍 [ ] Push Notifications 📬 [x] Custom Categories 📊 [ ] Buget Limits 📉 [ ] Expense Splitting 🤝 [ ] Automatic Exchange Rate Conversion / Proper multi-currency support 🌍 [ ] Reporting 📈 (Cashflow analysis) [ ] Iris 🪻 [x] Offline Syncing 🔄 [ ] Calendar Integration 📅 [ ] Web Version? 🌐 [ ] Integration with bank/mobile money services for automatic expense tracking 🏦 [ ] Opt-in encryption (Users can choose to have their sensitive data in the db encrypted)
Nucleus is the backend for Purple, it's built with Go using the Gin framework and GORM for database operations. The database used is PostgreSQL. It's essentially just a CRUD API in terms of functionality (isn't everything?).
I'm not currently looking for contributors since Purple is still in very early stages, but if you have any ideas or suggestions, feel free to open an issue.