Skip to content

opencodeiiita/NomMetric

Repository files navigation

NomMetric

A Flutter-based mess tracking app designed for college use, enabling students to track meals across multiple messes, developed for OpenCode’25.

Project Overview

NomMetric is a Flutter-based mess tracking application designed to simplify and digitize meal management in our college hostels. In many colleges, mess attendance, meal tracking, and rebate calculations are handled manually, leading to inaccuracies, lack of transparency, and poor user experience.

NomMetric aims to provide a unified, scalable solution where students can track their meals across multiple messes, while enabling accurate attendance logging and data-driven decision-making.

The application is built using Flutter for cross-platform support and Firebase (Firestore) as the backend, ensuring real-time updates, reliability, and ease of scalability. In addition to being a practical utility, NomMetric is developed as a learning-focused open-source project, allowing contributors to gain hands-on experience with Flutter, Firebase, and real-world application architecture.

Core Features

1. Meal & Attendance Tracking

  • Track student attendance for each meal (breakfast, lunch, dinner)
  • Support for multiple messes within the same campus
  • Accurate daily and monthly attendance records
  • Reduced ambiguity compared to manual attendance systems

2. Rebate Calculation System

  • Automatic calculation of mess rebates based on missed meals
  • Monthly rebate summaries for students
  • Configurable rebate rules to match different colleges
  • Transparent rebate history to avoid disputes

3. Menu Management

  • Digital mess menu visible to students
  • Support for daily and weekly menus
  • Easy updates to menu items without app redeployment
  • Support for special meals and holiday menus

4. Data Persistence & Real-time Sync

  • Firestore-backed real-time data updates
  • Consistent data across devices and sessions
  • Offline-friendly architecture with automatic sync when online

5. Clean & Modular UI

  • Simple, intuitive interface designed for daily use
  • Modular widget structure for easy feature expansion
  • Responsive layouts for different screen sizes

NomMetric is intended to be both a practical campus utility and a learning-focused open-source project, making it suitable for experimentation, feature expansion, and architectural improvements.

Quick Start

Ready to contribute? Check out our Contributing Guide. It covers everything you need to know about setting up the project, claiming issues, and submitting pull requests for OpenCode'25.

Prerequisites

Before you begin working on this project, ensure your environment meets the following requirements.

Core Tooling (All OS)

  • Flutter SDK: ^3.27.0
  • Dart SDK: 3.6.0 (bundled with Flutter 3.27.x)
  • Java Development Kit (JDK): 17(recommended) or 21

Platform-Specific Tooling

  • Android SDK (Linux / macOS / Windows):
    • Compile SDK / Target SDK: API level 35 (Android 15, recommended)
  • iOS SDK (macOS only):
    • Requires Xcode and iOS platform tools

OS Compatibility

This project uses Flutter and Firebase and is largely OS-independent.

  • The setup instructions apply to Linux, macOS, and Windows.
  • Android development is supported on all three operating systems.
  • iOS and macOS builds require macOS with Xcode installed.
  • Installation steps for the Android SDK and JDK may differ slightly by OS, but the required versions remain the same.

Required Flutter Packages

These following packages are used in this project:

Notes

  • Ensure compileSdkVersion and targetSdkVersion are set to 35.
  • Run flutter doctor to verify that all dependencies are correctly installed.

Try checking out contributing guide for further help.

Learning Resources

If you’re new to Flutter, Firebase, or Riverpod, the resources below will help you get started and contribute effectively.

Flutter

Firebase & Firestore

State Management (Riverpod)

Project-Specific References

Setting up

  1. Clone the repo
git clone https://github.com/opencodeiiita/NomMetric.git
cd NomMetric
  1. Link the repository to your Firebase project using the application ID defined in android/app/build.gradle.

Current applicationID : com.example.nommetric

Project Structure

NomMetric/
├── android/           # Android native configurations
├── ios/               # iOS native configurations
├── web/               # Web platform support
├── assets/            # Images, fonts, and local data files
├── lib/               # Primary application code
│   ├── screens/       # Full-page UI components
│   ├── widgets/       # Reusable UI elements
│   ├── services/      # Logic for Firebase, Firestore, and APIs
│   ├── models/        # Data structures; (User, Meal, Rating objects)
│   ├── provider/      # State management logic (Riverpod)2
├── contributors.md    # Registration file for participants
└── pubspec.yaml       # Project dependencies and configuration

Contributing

We welcome contributions as part of OpenCode’25.

  • Browse the repository issues and pick one that matches your interest and skill level.
  • Issues may be:
    • Open-for-all (OFA): No claiming required; anyone can submit a PR.
    • Competitive: Multiple submissions allowed; the best PR is accepted.
    • First-come: Must be claimed before working on it and has a time limit.

To contribute:

  1. Fork the repository and create a new branch.
  2. Make your changes following the project guidelines.
  3. Add your details to contributors.md.
  4. Open a pull request with a clear title and link it to the relevant issue.

For detailed rules, issue claiming process, and PR requirements, refer to
Contributing.md.

Contact

If you have any questions, run into issues while setting up, or need clarification on contributions, feel free to reach out.

  • Discord: VirtualVard

You can also contact me for reporting bugs, feature requests, or suggestions about this repository.


Happy contributing, and welcome to NomMetric!

About

A Mess Tracker App built with flutter for OpenCode'25

Topics

Resources

Contributing

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 39