Skip to content

A Flutter-based mobile application designed to ensure safe and socially distanced seating for conference attendees

Notifications You must be signed in to change notification settings

nunores/Seat-Management-Service

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

96 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Seat Management Service

A safe, self distanced, conference seat for everyone.

​Seat Management Service is a mobile application developed using Flutter, developed with the SCRUM methodology in mind. It aims to facilitate safe and socially distanced seating arrangements for conferences. The application allows attendees to reserve seats while automatically ensuring adjacent seats are marked unavailable to maintain appropriate distancing, improving safety during physical events.

This project was developed as part of the Software Engineering (ESOF) course at FEUP with the dual goal of contributing to the openCX suite and deepening our understanding of agile development practices.

Features

  • User Authentication: Attendees can register, log in, and manage their accounts.​
  • Seat Reservation: Users can view available conferences, select seats, and make reservations. The system automatically disables adjacent seats to uphold social distancing protocols.​
  • Reservation Management: Attendees can cancel reservations, providing flexibility in commitment.​
  • Conference Management: Administrators can create, edit, and delete conference details, including managing room layouts and seating capacities.​
  • Sanitation Tracking: The system identifies seats that have been used and require sanitation, assisting in maintaining hygiene standards.

Technologies

  • Language: Dart
  • Framework: Flutter
  • Development Methodology: SCRUM (Agile)
  • Design Tools: Figma (for UI mockups)

Use case diagram

Use Case Diagram

Domain model

Domain Model

Architecture and Design

Logical architecture (MVC Pattern)

Logical Architecture

The project follows an MVC-like architecture, adapted for Flutter’s reactive framework.

  • Model: Encapsulates the core data structures such as Conference, User, and Date. These represent the domain entities that are stored, manipulated, and shared across the application.

  • View: Handles the user interface and interaction logic. For example, conference_view is responsible for rendering conference information on the screen and managing how users interact with it. All visual components are built using Flutter’s widget system, ensuring a responsive and interactive UI.

  • Controller: Manages the application's logic and ties the View and Model layers together. It includes the navigation between screens and handles user actions such as logging in, registering, reserving or canceling seats, and accessing admin functionalities. Pages are organized around specific features, including user authentication, conference listing, seat reservation, and administration dashboards.

Physical architecture

Physical Architecture

The application is designed to run on any modern smartphone, requiring no external dependencies beyond the device itself.

Users interact with the app through a touch-based interface, using the buttons to navigate and perform actions. While most interactions are direct, the system also includes background processing — such as database updates, contextual prompts, and validation alerts — which ensure a smooth and consistent user experience. These background processes handle input validation, seat availability updates, and real-time UI feedback without requiring explicit user intervention.

Contributors

Nuno Resende

João Gonçalves

Inês Quarteu

Francisca Almeida

License

This project is licensed under the MIT License.

About

A Flutter-based mobile application designed to ensure safe and socially distanced seating for conference attendees

Resources

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages

  • Dart 99.5%
  • Other 0.5%