A free and open source Point of Sale system for Italian Food Festivals
Built with โค๏ธ for Sagre, Fiere, and community food events across Italy
Features โข Screenshots โข Quick Start โข Tech Stack โข Structure โข Contributing
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.
- 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
- 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 history โ Complete transaction records
- Order status tracking โ Pending, Completed, Voided
- Line item details โ Track each product with modifiers
- Notes & special requests โ Handle customer preferences
- Subtotals & grand totals โ Accurate calculations in cents
- Tax calculation โ Configure for local regulations
- Discount support โ Apply promotions and special offers
- 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
- First-run setup wizard โ Business type and profile configuration
- Capability-driven experience โ Nav and POS adapt to the business profile chosen
- ESC/POS thermal printing โ Bluetooth/USB receipt printers
- Android โ Tablets and phones
- iOS โ iPads for elegant counter setup
- Web โ Browser-based access for flexibility
- Local SQLite database โ Works without internet
- Sync when connected โ Never lose a sale
- Fast & reliable โ No network latency
Screenshots coming soon โ Stay tuned! ๐ฌ
- 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
# 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# 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| 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) |
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.
We welcome contributions from the community! Please read our Contribution Guidelines and Code of Conduct before getting started.
# 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- ๐จ 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.
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
- ๐ Bug Reports: Open an issue
- ๐ก Feature Requests: Start a discussion
- ๐ง Contact: me@fres.space
Made in Italy ๐ฎ๐น for Italian Sagre everywhere
If Agora helped your event, consider giving us a โญ on GitHub!
