Skip to content

Latest commit

 

History

History
175 lines (147 loc) · 5.85 KB

Charity_Food_Bank_App_Development_Roadmap.md

File metadata and controls

175 lines (147 loc) · 5.85 KB

Charity Food Bank App - Development Roadmap

This document outlines the development roadmap for the Charity Food Bank App, focusing on delivering an MVP (Minimum Viable Product) quickly and efficiently.

Development Phases and Milestones

Phase 1: Discovery and Planning (2-4 Weeks)

  • Define MVP Scope:
    • Core features: Inventory management, volunteer scheduling, and client tracking.
    • Multi-tenant foundation: User roles, scoped data for each charity.
  • Technology Stack Selection:
    • Backend: Node.js, Express.js, Vite.
    • Database: Subpabase.
    • Frontend: Vue.js.
    • Hosting: Netlify.
    • Authentication: JWT-based authentication - Supabase.
  • Design the Data Model:
    • Define tables for charities (tenants), users, inventory, clients, and volunteers.
  • Wireframes and UI Design:
    • Create wireframes for essential screens (dashboard, inventory, volunteer schedules).
  • Domain and Branding:
    • Register a .org domain for the project (e.g., fbims.org or foodbankinventory.org)
    • Design logo and brand guidelines

Phase 2: MVP Development

Milestone 1: Multi-Tenant Foundation (4-6 Weeks)

  • Tenant Management:
    • Basic user registration and login (JWT-based authentication).
    • Securely scope all data by tenant (e.g., charity ID).
  • Role-Based Access Control:
    • Admin and Volunteer roles.
  • Core Dashboard:
    • Display summary metrics (inventory levels, scheduled shifts, clients served).

Milestone 2: Inventory Management Module (4-6 Weeks)

  • Item CRUD Operations:
    • Add, update, and delete inventory items.
  • Categorization:
    • Support basic categories (e.g., canned goods, perishables).
  • Stock Levels:
    • Display current stock with low-inventory alerts.
  • Donations:
    • Record and track incoming donations.
  • Basic Reporting:
    • Generate inventory summaries (CSV or PDF).

Milestone 3: Volunteer Scheduling Module (4-6 Weeks)

  • Shift Management:
    • Create and assign shifts to volunteers.
  • Volunteer Database:
    • Store contact info and availability.
  • Shift Sign-Up Portal:
    • Volunteers can view and sign up for open shifts.
  • Notifications:
    • Email reminders for upcoming shifts.

Milestone 4: Client/Recipient Management Module (4-6 Weeks)

  • Basic Client Records:
    • Store client names and contact info.
  • Service Tracking:
    • Record services provided (e.g., food baskets).
  • Appointment Scheduling:
    • Book and manage pickup appointments.

Phase 3: Beta Launch and Feedback (4 Weeks)

  • Internal Testing:
    • Test with 1-2 local charities for usability and functionality.
  • Feedback Collection:
    • Gather input from charities on core modules.
  • Bug Fixes and Iteration:
    • Address high-priority issues before the public launch.

Phase 4: Polish and Launch (4-6 Weeks)

  • Production Environment Setup:
    • Configure production hosting environment
    • Set up monitoring and logging
    • Configure the production domain (fbims.org)
  • Security Audit:
    • Conduct penetration testing
    • Review access controls
    • Implement security best practices
  • Documentation:
    • Complete user documentation
    • System administration guide
    • API documentation
  • Launch Preparation:
    • Beta testing with select food banks
    • Load testing
    • Backup and recovery procedures
    • Support workflow establishment

Development Workflow and Practices

Git Flow Strategy

  • Main Branches:
    • main: Production-ready code
    • development: Integration branch for features and fixes
  • Supporting Branches:
    • feature/*: New features (branched from development)
    • fix/*: Bug fixes (branched from development)
    • release/*: Release preparation
    • hotfix/*: Urgent production fixes (branched from main)

Version Control Practices

  • Commit Messages: Follow Conventional Commits specification
    • feat: New features
    • fix: Bug fixes
    • docs: Documentation changes
    • chore: Maintenance tasks
    • refactor: Code refactoring
    • test: Adding or modifying tests

Release Management

  • Use Standard Version for semantic versioning
  • Automated CHANGELOG generation from conventional commits
  • Release tags follow semantic versioning (MAJOR.MINOR.PATCH)

Development Process

  1. Feature/Fix Initiation:

    • Create branch from development (feature/* or fix/*)
    • Use descriptive branch names (e.g., feature/inventory-management)
  2. Development:

    • Write code following project standards
    • Include relevant tests
    • Keep commits focused and conventional
  3. Code Review:

    • Create Pull Request to development branch
    • Peer review required
    • All tests must pass
    • Code style checks must pass
  4. Merge & Deploy:

    • Squash and merge to development
    • Delete feature branch after merge
    • Automated deployment to development environment

Quality Standards

  • All new features require tests
  • Maintain code coverage above 80%
  • Follow Vue.js and Node.js best practices
  • Use TypeScript for type safety where beneficial

Environments

  • Development: Latest features (development branch)
  • Staging: Release candidates (release branch)
  • Production: Stable releases (main branch)

Suggested Timeline Overview

Phase Timeline
Discovery & Planning 2-4 weeks
Milestone 1: Multi-Tenant 4-6 weeks
Milestone 2: Inventory 4-6 weeks
Milestone 3: Scheduling 4-6 weeks
Milestone 4: Client Mgmt 4-6 weeks
Beta Launch & Feedback 4 weeks
Future Enhancements Ongoing

Project Goal

The goal of this roadmap is to deliver essential tools to charities quickly while laying the groundwork for a scalable, multi-tenant platform that can serve many organizations with a single code base.