recurrer
An application to tackle your recurring tasks and expenses.
frontend
The frontend is built using ReactJs & vanilla CSS.
backend
The backend is a typical MEN (Mongo-Express-Node) backend.
Photo by Brett Jordan on Unsplash
Recurrer helps you track your recurring daily expenses / tasks like a pro. Once you add a "recur's" details, the app automatically updates it daily, giving you an instant idea about your recurring expenses.
SaaS Superstars
Wacky Wildcard
Landing Page
Sign In Page
Sign Up Page
Add Recur Page
Dashboard Page
Edit Recur Entry
Dashboard on Mobile
Recurrer is a utility app to tackle your recurring expenses and tasks. After adding a "recur" the app automatically marks the occurrence everyday (along with the cost & quantity). The dashboard gives you a holistic view of all your recurs, the total quantity consumed and the cost per recur.
The same app can used by a seller as well who is selling a fixed quantity everyday (say a Milkman). They can use it to track their customers, and in future create & share bills using the app.
An application to tackle your recurring tasks and expenses.
The frontend is built using ReactJs & vanilla CSS.
The backend is a typical MEN (Mongo-Express-Node) backend.
The source is licensed under MIT License.
In our household there are many recurring expenses which happen on a fixed schedule, with fixed quantity and cost (say for example, milk purchase is a fixed quantity & price expense). We generally use a physical calendar or a notebook to mark the occurrence.
And then at the end of the month you need to count everyday manually, do the calculation and the whole shebang. i thought why not automate this using a simple interface. The app can be used by anyone in the house using an accessible device (say the TV browser).
The app is built using the MERN stack. As the name implies, the frontend is built using the React framework along with vanilla CSS. The most fun part in building the application was the custom calendar month view which shows the daily recurs' entries.
The backend is using NodsJs with the Express framework and the MongoDB database. A cron job is run every 30 mins to manage the automatic daily entry creations. To interact with the database I'm using the Node mongodb
client library without any ORM.
The backend (along with the database) & the frontend both are hosted on a Linode Nanode. Linode has been a breeze while working for this project. I created this project from scratch in the past couple of days, and I've never used Linode before. Clearly the documentation and resources on the Linode developer site are of great quality.
For preparing the Nanode, I used the MERN one click app from the Marketplace (this is truly one click :-)).
This automatically installs the needed resources, as well as sets up the system with UFW (Uncomplicated Firewall) and Fail2Ban. After the installation one can even see the CRA app on port 3000 (Yes, port 3000 is allowed in UFW by default with this installation).
Things to do afterwards:
sudo ufw status numbered
. And then sudo ufw delete <the_entry_index>
. We also need to allow the http & https ports for incoming requests. Run sudo ufw allow http
& sudo ufw allow https
.git
which also comes preinstalled (though you could do scp
as well, as port 22 is open). Build the frontend for it to be served by the Express app.I tried to find documentation on EdgeWorkers (one of the submission category), but found only one article on the website, that also not that helpful for development. Maybe once the Akamai & Linode integration is complete, we'll have more clarity on it.
Some of the resources which helped me:
Overall it was a great experience to build this project and host it on Linode. Linode provides very good documentation and resources to make the journey smooth and enjoyable.
Best wishes to the Linode & Dev team for organizing the hackathon.
If you liked reading the article, show your love by commenting & sharing it. :-)