GithubHelp home page GithubHelp logo

hthere21 / noiseappproject Goto Github PK

View Code? Open in Web Editor NEW
1.0 1.0 0.0 506 KB

๐Ÿ“ฑ A mobile application built with Flutter to assist the UCI Public Health Department's noise research

Kotlin 0.12% Ruby 2.38% Swift 2.84% Objective-C 0.03% Dart 52.90% CMake 16.22% C++ 21.62% C 1.21% HTML 1.59% JavaScript 1.08%
amplify aws-s3 fft-analysis flutter real-time dart

noiseappproject's Introduction

Flutter Noise App Project

My Skills

Overview

The Flutter Noise App is a versatile mobile application built with the Flutter framework, offering seamless noise-related data recording and management for various studies. With a clean and intuitive interface, users can navigate through different tabs to access essential features, including Home, Data Storage, and Settings.

Final Demo: https://youtu.be/F8IYeJQc9fc

Features

  1. Authentication: Secure user authentication is facilitated through Amplify Auth Cognito, enabling users to sign up and sign in effortlessly.

  2. Data Recording: Users can efficiently record dBA surround noise during real time. The app captures the stream of audio from the mic then using FFT to convert it into dBA values. After finish recording, user can upload or discard the recording.

  3. Data Storage: The Data tab allows users to conveniently view and manage their recorded noise-related data, ensuring easy access and organization. User can upload the data to the AWS S3 buckets or delete it.

  4. Settings: Customize your app experience with the Settings tab, providing users with options to modify their StudyID for the research.

Global Variables

The app employs well-organized global variables for efficient data management:

  • cache: A map storing the current study ID and information about files already uploaded.
  • studyId: A unique identifier for the current study, facilitating seamless data uploads.
  • userId: The email address of the current user, ensuring personalized interactions.
  • cacheFileName and cacheLastLoginFileName: Files for storing cache and user login timestamp, respectively.
  • firstName and lastName: Strings representing the user's first and last names.
  • data: A list of DataItem objects, providing a structured approach to managing all data entries.

AWS Amplify Integration

The app seamlessly integrates with AWS Amplify, leveraging powerful AWS services. The _configureAmplify function sets up the connection to AWS, configuring necessary plugins like Amplify Auth Cognito and Amplify Storage S3.

Getting Started

  1. Clone the Repository: Begin by cloning the repository to your local machine.
  2. Install Flutter and Dart: Ensure you have Flutter and Dart installed on your development environment.
  3. Install Dependencies: Run flutter pub get to install project dependencies.
  4. Configure Amplify: Update the amplifyconfiguration.dart file with your AWS Amplify settings.
  5. Run the App: Execute flutter run to launch the app.

Xcode Test

Requirements

  • Mac with Xcode installed from Apple Store
  • iPhone and cable to connect to Mac
  • Developer mode turned on in iPhone

Directions

  1. Open Runner.xcworkspace under the ios folder.
  2. Configure signing and capabilities in Xcode.
  3. Assign "Runner" to your iPhone.
  4. Click the "Play Button" to build the app.
  5. Grant permission on your iPhone.
  6. Re-run the app by clicking the "Play Button."

Note: The app only runs when the runner is attached to the phone.

License

This project is licensed under the Noise App Group License. See the LICENSE file for detailed information.

noiseappproject's People

Contributors

christianmb70 avatar hthere21 avatar swordblu3 avatar

Stargazers

 avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.