Skip to content

fres-sudo/agora

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

88 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

Agora POS

๐Ÿ Agora POS

A free and open source Point of Sale system for Italian Food Festivals

Built with โค๏ธ for Sagre, Fiere, and community food events across Italy

Platform Flutter License

Features โ€ข Screenshots โ€ข Quick Start โ€ข Tech Stack โ€ข Structure โ€ข Contributing


๐ŸŽฏ What is Agora?

Agora is a modern, offline-first POS (Point of Sale) application designed specifically for Italian Sagre (food festivals), Fiere (fairs), and community events. Whether you're serving porchetta, arrosticini, piadine, or vino locale, Agora helps you manage orders, track inventory, and serve customers faster.

๐Ÿ“ Why "Agora"? โ€” Named after the ancient Greek marketplace, Agora represents the heart of community gatherings where food, culture, and people come together.


โœจ Features

๐Ÿ“ฑ Point of Sale

  • Fast order entry โ€” Optimized touch interface for high-volume service
  • Product categories โ€” Organize items by course (Primi, Secondi, Dolci, Bevande)
  • Modifier groups โ€” Handle customizations (size, toppings, cooking preferences)
  • Quick checkout โ€” Complete transactions in seconds

๐Ÿ“ฆ Inventory Management

  • Real-time stock tracking โ€” Know exactly what you have left
  • Low stock alerts โ€” Never run out of popular items mid-service
  • Batch adjustments โ€” Quickly update quantities after restocking

๐Ÿงพ Order Management

  • Order history โ€” Complete transaction records
  • Order status tracking โ€” Pending, Completed, Voided
  • Line item details โ€” Track each product with modifiers
  • Notes & special requests โ€” Handle customer preferences

๐Ÿ’ฐ Financial Tracking

  • Subtotals & grand totals โ€” Accurate calculations in cents
  • Tax calculation โ€” Configure for local regulations
  • Discount support โ€” Apply promotions and special offers

๐Ÿ‘ฅ Workforce Management

  • Employee accounts & PIN login โ€” Fast operator switching at the counter
  • Roles & permissions โ€” Cassiere, Admin, and custom roles
  • Clock-in / clock-out โ€” Track shifts per employee

๐Ÿงพ Guided Onboarding

  • First-run setup wizard โ€” Business type and profile configuration
  • Capability-driven experience โ€” Nav and POS adapt to the business profile chosen

๐Ÿ–จ Receipt Printing

  • ESC/POS thermal printing โ€” Bluetooth/USB receipt printers

๐ŸŒ Multi-Platform

  • Android โ€” Tablets and phones
  • iOS โ€” iPads for elegant counter setup
  • Web โ€” Browser-based access for flexibility

๐Ÿ”’ Offline-First

  • Local SQLite database โ€” Works without internet
  • Sync when connected โ€” Never lose a sale
  • Fast & reliable โ€” No network latency

๐Ÿ“ธ Screenshots

Screenshots coming soon โ€” Stay tuned! ๐ŸŽฌ


๐Ÿš€ Quick Start

Prerequisites

  • FVM (Required โ€” manages the pinned Flutter SDK version, see .fvmrc)
  • Melos (dart pub global activate melos) โ€” manages the monorepo workspace
  • Android Studio / Xcode for mobile development

Installation

# Clone the repository
git clone https://github.com/fres-sudo/agora.git
cd agora

# Bootstrap the monorepo (links all packages, runs pub get)
melos bootstrap

# Generate code (Freezed, Drift, AutoRoute, etc.) across all packages
melos run build

# Run the app
cd apps/agora && fvm flutter run

Configuration

# Generate translations (per-package, uses Slang)
cd packages/i18n && fvm flutter pub run slang

# Generate assets
cd apps/agora && fvm flutter pub run flutter_gen

# Generate launcher icons
cd apps/agora && fvm flutter pub run flutter_launcher_icons

๐Ÿ›  Tech Stack

Category Technology
Framework Flutter 3.38+
Monorepo tooling Melos
State Management BLoC + flutter_bloc
Local Database Drift (SQLite)
Navigation auto_route
DI & Architecture Pine (service locator) + Provider
Models Freezed + json_serializable
Internationalization Slang
HTTP Client Dio
Logging Talker
Feature flags package:feature_flags
Receipt printing esc_pos_utils_plus (ESC/POS)

๐Ÿ“ Project Structure

Agora is a Melos-managed Flutter monorepo with three scopes:

agora/
โ”œโ”€โ”€ apps/
โ”‚   โ””โ”€โ”€ agora/                 # Flutter entry point (no business logic)
โ”‚       โ””โ”€โ”€ lib/app/           # bootstrap, provider assembly, routing
โ”‚
โ”œโ”€โ”€ features/                  # Domain-isolated feature packages
โ”‚   โ”œโ”€โ”€ auth/                  # Authentication & session management
โ”‚   โ”œโ”€โ”€ onboarding/             # First-run business setup wizard
โ”‚   โ”œโ”€โ”€ products/               # Product catalog management
โ”‚   โ”œโ”€โ”€ orders/                 # Order processing
โ”‚   โ”œโ”€โ”€ inventory/               # Stock management
โ”‚   โ”œโ”€โ”€ discounts/                # Promotions & pricing rules
โ”‚   โ”œโ”€โ”€ pos/                       # Point of Sale interface
โ”‚   โ”œโ”€โ”€ reports/                    # Sales analytics & reporting
โ”‚   โ”œโ”€โ”€ settings/                    # App configuration
โ”‚   โ””โ”€โ”€ workforce/                    # Employees, roles, PIN login, clock-in
โ”‚       โ””โ”€โ”€ lib/
โ”‚           โ”œโ”€โ”€ data/            # Drift DAOs, DTOs, repository impls
โ”‚           โ”œโ”€โ”€ domain/          # Freezed models, repository interfaces, mappers
โ”‚           โ””โ”€โ”€ presentation/    # Blocs, pages, widgets, route registration
โ”‚
โ””โ”€โ”€ packages/                  # Cross-cutting infrastructure (no business logic)
    โ”œโ”€โ”€ ui_kit/                 # Design system, shared widgets
    โ”œโ”€โ”€ theme/                  # AppTheme, ThemeCubit
    โ”œโ”€โ”€ database/                # AgoraDatabase (Drift), central schema
    โ”œโ”€โ”€ sync_engine/              # Offline-first sync primitives
    โ”œโ”€โ”€ printing/                  # Receipt building & ESC/POS thermal printing
    โ”œโ”€โ”€ feature_flags/              # Business type / capability flags
    โ”œโ”€โ”€ i18n/                        # Slang-generated translations
    โ”œโ”€โ”€ bloc/                         # flutter_bloc + freezed re-exports
    โ”œโ”€โ”€ result/                        # Result<T, E> pattern
    โ”œโ”€โ”€ errors/                         # AppException, RepositoryException
    โ”œโ”€โ”€ logger/                          # Talker wrapper
    โ”œโ”€โ”€ observer/                         # BlocObserver
    โ”œโ”€โ”€ remote_config/                     # Remote config abstraction
    โ”œโ”€โ”€ app_info/                           # App/package version info
    โ”œโ”€โ”€ config/                              # Environment/flavor config
    โ”œโ”€โ”€ launcher/                             # App launcher icon generation
    โ”œโ”€โ”€ utils/                                 # Extensions, constants
    โ””โ”€โ”€ design_lint/                            # Custom lint rules for the design system

Each feature package follows a strict presentation โ†’ domain โ† data layering. See CONTRIBUTING.md and docs/architecture/ for the full architectural spec, dependency rules, and the multi-app/backend roadmap.


๐Ÿค Contributing

We welcome contributions from the community! Please read our Contribution Guidelines and Code of Conduct before getting started.

Quick Commands

# Run tests across all packages
melos run test

# Analyze code across all packages
melos run lint

# Format code across all packages
melos run format

# Full CI quality gate (format + lint + design lint + test)
melos run ci

๐Ÿ“‹ Roadmap

  • ๐Ÿ–จ Receipt printing (ESC/POS thermal printers)
  • ๐Ÿ‘ฅ Multi-user support with roles (Cassiere, Admin) & PIN login
  • ๐Ÿงญ Guided onboarding & business-profile setup
  • ๐Ÿ“Š Sales analytics & reporting dashboard
  • ๐Ÿ”„ Cloud sync via the Agora backend (Go + PostgreSQL)
  • ๐Ÿ“ฑ Kitchen display system (KDS) app
  • ๐Ÿง Self-order totem & customer mobile app
  • ๐Ÿ’ณ Payment integration (SumUp, Satispay)
  • ๐ŸŽซ Ticket/token system for Sagre

See docs/architecture/ECOSYSTEM.md for the full multi-app/backend build-phase plan.


๐Ÿ“„ License

Agora is released under the GNU Affero General Public License v3.0 (AGPL-3.0).

This means you're free to:

  • โœ… Use the software for any purpose
  • โœ… Study and modify the source code
  • โœ… Distribute copies
  • โœ… Distribute your modifications

With the requirement that:

  • ๐Ÿ“ You must disclose your source code if you run a modified version on a server

๐Ÿ’ฌ Community & Support


Made in Italy ๐Ÿ‡ฎ๐Ÿ‡น for Italian Sagre everywhere

If Agora helped your event, consider giving us a โญ on GitHub!

About

free and open source POS system for italians food festivals

Resources

License

Code of conduct

Contributing

Stars

3 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages