InOut App

Introduction

The InOut App is designed to streamline and manage various student-related requests, such as leave requests and outing requests, through a user-friendly mobile application interface. The app leverages the capabilities of Flutter and Dart to deliver a cross-platform solution with robust performance and a responsive user experience.

Features

1. Home Screen

  • Virtual ID: A feature to generate and display a virtual ID for students.
  • Leave Request: Allows students to submit leave requests with details such as purpose, place of visit, and out/in date and time.
  • Outing Request: Facilitates the submission of outing requests, including place of visit and gate selection, with QR code generation.
  • Request Log: Maintains a log of all submitted requests and their respective QR codes.

2. Leave Request Page

  • Form Input: Collects details such as purpose of visit, place of visit, out date and time, and in date and time.
  • Validation: Ensures all required fields are filled before submission.
  • QR Code Generation: Generates a QR code for each leave request upon submission.

3. Outing Request Page

  • Form Input: Collects details such as place of visit and gate selection (Main Gate or Poovam Gate).
  • QR Code Generation: Generates a QR code for each outing request.
  • Dialog Box Display: Displays the generated QR code in a dialog box.

4. Request Log Page

  • List View: Displays a list of all submitted requests with their respective QR codes.
  • Interactive QR Codes: Allows users to tap on a list item to view the corresponding QR code in a larger format.

Technical Overview

Why Flutter and Dart?

  • Cross-Platform Development: Flutter allows us to develop for both Android and iOS from a single codebase, saving time and resources.
  • Fast Development: Features like Hot Reload and a rich set of pre-designed widgets enable rapid prototyping and iteration.
  • Performance: Dart’s JIT (Just-In-Time) compilation aids in development speed, while AOT (Ahead-Of-Time) compilation ensures high performance in production builds.

Dart Compilation

  • JIT Compilation: Enhances development speed with quick reload times, allowing developers to see changes in real-time.
  • AOT Compilation: Compiles the code ahead of time for optimized performance, crucial for a smooth user experience in production.

Challenges Faced

  • State Management: Managing the state of various form inputs and ensuring data integrity across the application.
  • Form Validation: Implementing robust validation to ensure all necessary data is collected accurately.
  • QR Code Generation and Display: Ensuring QR codes are generated correctly and displayed properly within the app.
  • Route Management: Navigating between different pages and ensuring a seamless user experience.

Future Enhancements

  • User Authentication: Adding user login and authentication to secure access to personal data.
  • Notifications: Implementing push notifications to remind students of their requests and updates.
  • Data Persistence: Ensuring that all data is saved and can be accessed offline.

Contributors

  • Tharaneeshwaran V U
  • Naghul Pranav AS
  • Krishna J