Skip to content

A people-first app for smarter everyday spending, starting with groceries.

License

Notifications You must be signed in to change notification settings

sakialabs/nimbly

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

16 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

πŸ‡ Nimbly

Move lighter. Spend smarter.

Nimbly is a people-first app for smarter everyday spending, starting with groceries.
It highlights deals, surfaces clearances, and nudges you toward better timing without guilt, pressure, or finance jargon.

Nimbly isn't about extreme budgeting.
It's about moving smart, consistently.


πŸ“‘ Table of Contents


πŸ€– Meet Savvy

Savvy is your in-app guide.

Savvy keeps an eye on prices, notices patterns, and gives you a heads-up when there's a better move to make.

No lectures.
No judgment.
Just the right info at the right time.


✨ What Nimbly does

  • Surfaces grocery deals and clearances
  • Helps you spot better buying opportunities
  • Encourages smarter timing on everyday purchases
  • Keeps the experience fast, light, and human

🌱 Why Nimbly exists

Groceries are getting expensive.
Everyday spending decisions are getting harder.
Most tools either shame you or overwhelm you.

Nimbly exists to help everyday people:

  • spend smarter on essentials
  • make better decisions without stress
  • build healthier money habits over time

Small wins. Real relief.


🎯 Goals

  • Help people spend less on everyday groceries
  • Reduce decision fatigue around shopping
  • Build clarity instead of guilt
  • Turn small savings into long-term stability over time

Small, repeatable wins. Long game.


πŸš€ Quick Start

Automated Setup (Recommended)

Unix/Mac:

chmod +x scripts/setup.sh
./scripts/setup.sh

Windows:

scripts\setup.bat

This will automatically:

  • Check dependencies (Docker, Node.js)
  • Set up environment files
  • Build and start containers
  • Seed the database
  • Install web dependencies

Manual Setup

If you prefer manual setup:

# 1. Start backend
docker-compose up -d

# 2. Seed database
docker-compose exec api python -m api.seed

# 3. Install web dependencies
cd web && npm install

# 4. Start web app
npm run dev

Access

See api/README.md for detailed backend setup and docs/testing.md for testing guide.


πŸ“ Project Structure

nimbly/
β”œβ”€β”€ api/                    # FastAPI backend
β”‚   β”œβ”€β”€ tests/              # Backend test suite
β”‚   β”œβ”€β”€ auth.py             # Authentication endpoints
β”‚   β”œβ”€β”€ receipts.py         # Receipt endpoints
β”‚   β”œβ”€β”€ insights.py         # Insight generation
β”‚   β”œβ”€β”€ parser.py           # Receipt parsing (OCR, extraction)
β”‚   β”œβ”€β”€ models.py           # Database models
β”‚   β”œβ”€β”€ schemas.py          # Pydantic schemas
β”‚   β”œβ”€β”€ database.py         # Database configuration
β”‚   β”œβ”€β”€ config.py           # App configuration
β”‚   β”œβ”€β”€ utils.py            # Utility functions
β”‚   └── seed.py             # Database seeding
β”‚
β”œβ”€β”€ web/                    # Next.js web app (Phase 1 βœ…)
β”‚   β”œβ”€β”€ app/                # Pages and routes
β”‚   β”‚   β”œβ”€β”€ auth/           # Authentication (sign up, sign in)
β”‚   β”‚   β”œβ”€β”€ dashboard/      # Dashboard home
β”‚   β”‚   β”œβ”€β”€ receipts/       # Receipt list, detail, upload
β”‚   β”‚   β”œβ”€β”€ insights/       # Insights feed
β”‚   β”‚   β”œβ”€β”€ deals/          # Deals page
β”‚   β”‚   β”œβ”€β”€ profile/        # User profile
β”‚   β”‚   └── not-found.tsx   # 404 page
β”‚   β”œβ”€β”€ components/         # React components
β”‚   β”‚   β”œβ”€β”€ ui/             # Base UI components (shadcn/ui)
β”‚   β”‚   β”œβ”€β”€ navigation/     # Sidebar, bottom nav
β”‚   β”‚   β”œβ”€β”€ app-layout.tsx  # Main layout
β”‚   β”‚   β”œβ”€β”€ theme-provider.tsx
β”‚   β”‚   └── ...
β”‚   └── lib/                # Utilities
β”‚       β”œβ”€β”€ api.ts          # API client
β”‚       └── utils.ts        # Helper functions
β”‚
β”œβ”€β”€ mobile/                 # React Native mobile app (Phase 1 🚧)
β”‚   β”œβ”€β”€ app/                # Expo Router pages
β”‚   β”œβ”€β”€ components/         # Mobile components
β”‚   └── lib/                # Utilities
β”‚
β”œβ”€β”€ docs/                   # Documentation
β”‚   β”œβ”€β”€ requirements.md     # Feature requirements
β”‚   β”œβ”€β”€ design.md           # System design
β”‚   β”œβ”€β”€ tasks.md            # Implementation tasks
β”‚   β”œβ”€β”€ phases.md           # Development phases
β”‚   β”œβ”€β”€ visuals.md          # Visual design system
β”‚   β”œβ”€β”€ tone.md             # Voice and tone guide
β”‚   β”œβ”€β”€ testing.md          # Testing guide
β”‚   └── CHANGELOG.md        # Version history
β”‚
β”œβ”€β”€ scripts/                # Helper scripts
β”‚   β”œβ”€β”€ setup.sh/.bat       # Automated setup
β”‚   β”œβ”€β”€ dev.sh/.bat         # Start dev environment
β”‚   β”œβ”€β”€ test.sh/.bat        # Run tests
β”‚   └── README.md           # Scripts documentation
β”‚
β”œβ”€β”€ uploads/                # Receipt file storage
β”œβ”€β”€ docker-compose.yml      # Docker configuration
β”œβ”€β”€ Dockerfile              # API container definition
β”œβ”€β”€ .env.example            # Environment variables template
β”œβ”€β”€ CONTRIBUTING.md         # Contribution guidelines
└── README.md               # This file

πŸ“Έ Screenshots

🌐 Web App

Landing Page

Web Landing

Dashboard

Web Dashboard

Receipts

Web Receipts

Insights

Web Insights

Deals

Web Deals

Profile

Web Profile

πŸ“± Mobile App

Dashboard

Mobile Dashboard

Receipts

Mobile Receipts

Insights

Mobile Insights

Deals

Mobile Deals

Upload

Mobile Upload

Profile

Mobile Profile


🚧 Project Status

Phase 0 (Backend Foundation): βœ… Complete

  • Magic link authentication
  • Receipt upload and parsing (OCR)
  • Price history tracking
  • Insight generation (4 types)
  • Comprehensive error handling
  • Structured logging
  • Docker deployment
  • Test suite

Phase 1 (Web App): βœ… Complete

  • Email/password + social authentication
  • Receipt upload (drag-and-drop + file picker)
  • Receipt list and detail views
  • Insights feed with 4 insight types
  • Professional UI with Sage/Amber colors
  • Light/dark mode with theme toggle
  • Collapsible sidebar with state persistence
  • Responsive design (desktop + mobile web)
  • Loading, empty, and error states

Phase 1 (Mobile App): 🚧 Next Priority

  • React Native with Expo
  • Camera integration for receipts
  • Same features as web app
  • Timeline: 2-3 weeks

Phase 2 (Infrastructure & Understanding): πŸ“‹ Planned

  • Async processing (Celery + Redis)
  • Scalable storage (MinIO/S3)
  • LLM integration (Gemini 2 Flash)
  • Advanced insights (5 new types)
  • Performance optimization

See docs/roadmap.md for complete development plan.


πŸ› οΈ Tech stack

  • API: FastAPI
  • Database: PostgreSQL
  • Web app: Next.js (shadcn/ui + Framer Motion)
  • Mobile app: React Native
  • Infra: Docker

🧠 Philosophy

Move fast. Stay aware. Don't get played.

That's Nimbly.


πŸ“¬ Contributing

We welcome contributions! See CONTRIBUTING.md for guidelines.


Built with πŸ’– for everyday people trying to get by.