An award-winning AI-driven finance tracking web app that helps users monitor expenses, manage budgets, and discover cost-effective alternatives using AI recommendations. This project was built as part of the CrimsonCode Hackathon, aligning with the theme "Art in Innovation" by incorporating data visualization as digital art to represent spending habits.
Hackronomics.explanation.mp4
Frontend.Demo.mp4
Functional & Non-Functional Requirements for Hackronomics
ID
Requirement
Description
FR-1
AI-Powered Savings Suggestions
AI analyzes transaction data to suggest cost-saving alternatives.
FR-2
Save Points System
Users earn "Save Points" based on how much they save each week.
FR-3
Custom Savings Strategy
Users create flexible, personalized savings plans.
FR-4
Avatar Customization
Users spend Save Points to unlock and customize their avatar.
FR-5
Add-On Features
Users can unlock additional features to use their avatar with other users by saving more over time.
FR-6
Engaging UI
The app provides an interactive and visually appealing experience.
FR-7
Predictable Infrastructure
The app scales efficiently to accommodate more users.
FR-8
Discounts for Extra Savings
If a user exceeds their weekly savings goal, they receive discounts in the marketplace.
Non-Functional Requirements
ID
Requirement
Description
NFR-1
Scalability
The system should handle a growing number of users efficiently.
NFR-2
Performance
The app should provide quick responses and smooth animations.
NFR-3
Security
User data and transactions should be securely stored using encryption.
NFR-4
Maintainability
The codebase should be modular and easy to extend.
NFR-5
Availability
The app should have 99.9% uptime and function across devices.
NFR-6
User Experience
The interface should be intuitive and engaging, keeping users motivated to save.
NFR-7
AI Fairness & Transparency
AI recommendations should be clear, explainable, and free of bias.
Tech Stack for Hackronomics
Category
Technologies & Tools
Assigned To
AI & Machine Learning
- Cloudflare (AI/ML services) - OpenAI API (AI-powered budget insights) - Google Maps API (Location-based spending suggestions)
Ehiane & Will
Frontend (FE)
- React (TypeScript) - CSS / Bootstrap
Osaze
Backend (BE)
- Node.js, Express.js (API & server logic)
Ehiane & Will
Database & Authentication
- MongoDB (Transaction & user data) - Auth0 (User authentication & security)
Bruno
Security
- Cloudflare CDN (DDoS protection & performance)
All of Us
Hosting & Deployment
- Vercel + Tech domain (Frontend hosting)
Osaze
Database Schema - Hackanomics
The following is the database schema for Hackanomics , built using MongoDB Atlas .
Field
Type
Description
userID
String
Unique identifier for the user
name
String
User's full name
email
String
User's email address
DOB
Date
User's date of birth
primaryLocation
String
User's primary location or address
zipcode
String
User's ZIP code
savingsPlan
Object
User's active savings plan (embedded document)
avatar
Object
Stores the avatar’s customization details
friendsList
Array
List of user IDs representing friends
Field
Type
Description
transactionID
String
Unique transaction identifier
userID
String
ID of the user making the transaction
category
ENUM
Type of transaction (Food, Transport, Subscription, etc.)
amountSpent
Number
Amount spent on the transaction
vendorDetails
Object
Vendor name and address
Field
Type
Description
userID
String
ID of the user who owns the avatar
baseBody
String
Default body shape/type
clothingItems
Array
List of clothing/accessories equipped
face
String
Custom face type
Field
Type
Description
itemID
String
Unique identifier for the store item
category
String
Type of item (Clothing, Accessories, etc.)
imageURL
String
URL to the item's image
price
Number
Price in Save Points
Field
Type
Description
savingsPlanID
String
Unique identifier for the savings plan
userID
String
ID of the user associated with the plan
balance
Number
Total saved amount
transactions
Array
List of related transaction IDs
goalAmount
Number
Target amount for the savings goal
duration
String
Length of time for savings (e.g., weekly, monthly)
progress
Number
Current progress toward the goal (%)
remainingAmount
Number
Amount left to reach the goal
Field
Type
Description
rewardID
String
Unique identifier for the reward
userID
String
ID of the user earning the reward
rewardName
String
Name of the reward (e.g., "10% Off Food")
rewardType
ENUM
Type of reward (Discount, Bonus Points, Special Item)
redeemed
Boolean
Whether the reward has been claimed
Field
Type
Description
discountID
String
Unique identifier for the discount
userID
String
ID of the user who earned the discount
discountPercentage
Number
Discount percentage applied to the store
expirationDate
Date
Expiration date for the discount
redeemed
Boolean
Whether the discount has been used
Field
Type
Description
notificationID
String
Unique identifier for the notification
userID
String
ID of the user receiving the notification
message
String
Notification content
readStatus
Boolean
Whether the user has read the notification
timestamp
Date
Time when the notification was sent
Field
Type
Description
leaderboardID
String
Unique identifier for the leaderboard entry
userID
String
ID of the user on the leaderboard
totalSavings
Number
Total amount saved by the user
rank
Number
Position in the leaderboard
The User Collection stores personal details, savings plans, and avatar data .
Transactions track spending , categorized by type and vendor details.
The Store Collection enables customization by purchasing items with Save Points.
The Savings Plan Collection manages user goals and their progress.
Rewards and Discounts Collections allow users to earn and redeem perks.
Notifications provide real-time updates , and the Leaderboard fosters competition .