Inspiration

The growing financial debt crisis is worrisome. A direct link to this is the lack of knowledge on how our daily activities affect our finances. Although needed, we don't see many schools that teach their students how they may develop healthy financial habits that will help them in the long run.

This is why we wanted to work on creating a project that would help students become financially independent and knowledgeable.

What it does

Mindful can be thought of as a financial advisor and helper for people from all walks of life, especially college students.

What Mindful does for you:

  • It helps you create financial goals.
  • It helps you keep track of the progress that you are making.
  • We have an amazing, easily accessible collection of financial concepts broken down into a simple, easy-to-understand format.
  • Encourages you to implement what you have learned by providing a set of challenges to help you apply the concepts and ideas in the real world.
  • Let's you scan your bills of purchases, analyze, and break them down into specific suggestions on how you can further reduce your costs.
  • Helps you stick to your goals with the help of accountability from your friends and family.

Mindful also has a clean, responsive UI so you're able to use it on different devices. While learning more about how to improve and manage your finances, you'll also enjoy browsing the site!

How we built it

We chose Django with Django Rest Framework for the backend to quickly create an API. The frontend is built in React and Material UI with Axios for calling the backend.

The application is deployed on Heroku.

Challenges we ran into

Remote work

Jim is based in Florida, Zhuoen is based in Singapore, and Sreemukhi and Shreyansh are based in India. We worked across timezones halfway across the world to build this project!

Network latency was also an issue. The audio quality for voice calls was poor and we couldn't share our screens during calls because it was so slow and blurry (and it cut off the audio).

We ended up working asynchronously when we weren't online at the same time creating documents on Notion, and communicating ahead of time when we would be online and when we wouldn't.

Various technical challenges

Custom permissions management in Django Rest Framework, serializer vs model discrepancy, Axios errors, etc.

Deployment

We used a monorepo with a Django project as the root directory and a "frontend" subdirectory within it. However, Heroku doesn't know how to build the frontend, and its buildpacks look for "package.json" in the root directory rather than the frontend directory. We ended up copying "package.json" to the root directory which would "cd frontend" before running the build process and using two buildpacks in Heroku: python and nodejs.

However, the node and npm versions in Heroku are different by default than the ones we used, breaking the build process. So we had to specify which versions of node and npm in "package.json" to use. Then, Heroku would install these versions upon every deploy.

This led to a long build process for every deploy. Every little hiccup would waste ten minutes of our time. Django requires STATIC_URLS and ALLOWED_HOSTS to be set in production? Set the variables, wait ten minutes. Django doesn't serve static files in production? Install white noise, wait ten minutes. CORS was a challenge even though we explicitly set CORS_ALLOWED_ORIGINS to allow the origin.

Overall, it was a learning process to deploy Django in production. Running it in development was easy, but we had to take the necessary steps for secure production deployment.

Accomplishments that we're proud of

First hackathon submission for Jim and second for Sreemukhi. We built and deployed a product!

Secure API: manages permissions for users based on whether they're owners, whether the object type is public, etc.

Comprehensive API: all application logic can be mapped to database operations effectively with the API

What's next for Mindful

We want to work more on the toolkit for Mindful, as this contains elements like

  • Scan tool

Along with this, we want to introduce community curated challenges and workshops/talks from real people who have mastered their financials with simple habits.

This will help users gain worldly yet specific knowledge to tackle problems to come.

Built With

Share this project:

Updates