/Neuro-Rush

refactor of Flutter app that used as questioner for ADHD

Primary LanguageDart

Neuro Rush

refactored the Flutter app that was used to ask questions about ADHD; the past version was hand in hand.

What Is ADHD?

ADHD stands for attention deficit hyperactivity disorder. It is a medical condition. ADHD can affect a child at school, at home, and in friendships. Sometimes parents and teachers notice signs of ADHD when a child is very young.

(But it's normal for little kids to be distracted, restless, impatient, or impulsive — these things don't always mean that a child has ADHD.)

A person with ADHD has differences in brain development and brain activity that affect attention, the ability to sit still, and self-control.

And that's how we are inspired by the App icon.

Why We Received This App?

We developed this app to address the growing need for accessible, accurate, and convenient tools to diagnose ADHD. Traditional methods can be time-consuming and stressful, so we designed this app to make the process easier and more approachable for everyone involved , and the past version was full of bugs.

What does the app do?

Our application offers three main features: Detailed information about ADHD, Assessment test for children, Assessment test for adults.

Additionally, users can access past results, allowing them to monitor changes and improvements over time.

Main technology we used :

MVVM design pattern ValueNotifier for both

  • Flutter localizations (English and Arabic and change between them easily)
  • Light and Dark mode Firebase with 3 features:
  • Authentication: Using email and password
  • Cloud Firestore: To store the questions and answers for adult and child in both language
  • Realtime Database: To store the result of the data and revel it Cubit to manage the state of data more efficiently

onboarding

First, we start the app with onboarding screen that gives us a brief summary of the app:

you can move it by 3 ways:

  • Wave in the screen from left to right
  • Next and skip button
  • The points in the buttons give some animation when scrolling

here we have simple condition if the device is already logged in ? then we move forward to mainView
if dont? then we move to next page, witch is ...

Authentication

as in regular sign-in, we need the user to already have an account with email & password; if not,?
weup, move to sign up where we send personal data like Name, age, email and password
after that, he can upload the photo he want and set it as an avatar picture in Main view

IsIt it necessary to set an account in firebase?

Yes , we send the result of both child and adults to firebase using the Email he registered with .

Main View

Here's the main interface in the application application.You can see that we revealed the personal data from a real-time database
personal photo , name, and email , We will divide this into two main parts:

  • Drawer
  • Body of the page

Drawer

you can customize your app as you like here using the 2 functions Dark and light mode and Arabic and English language

We will display the previous kids results with the result page

The body of page

here we got into the main parts in the app

  • What's ADHD?

A page where we discuss what is ADHD and give general information about it.

  • Child Test

this test is based on Conner's Partent Raiting; you can see how it works.

(Conner's Partent Raiting).

Firstly, we start with whos the child ? male or female and his age , the result is different based on these factors.
we have 10 lists made by 2 factor : Gender (Male or Female) , Age (3-5, 6-8, 9-11, 12-14, 15-17)
After we enter the quiz phase, we have lots of widget,
starting with stack on appbar shows the current question and how many questions are there
the question and answer list is in the firebase Firestore, and we fetch it based on the language
Lastly, we have next and back button to control the question and move freely between them
you got 80 questions that need to be answered and can't skip any part of them. The points is simple to calculate: never = 0 , often = 1 , sometimes = 2 and always = 3
then we take the points of each and start to separate them into 14 categories. Every question is into a category
after that and with last question, we see the age and gender of kid and the dataset come with the result
you can check the repo hand in hand for more details about this test

  • Adult Test

here it is easier than the child one; there are only one; 18 questions, and break the questions into 2 category overall & detailed

  • Overall, we can diagnose the patient from the questions 1–6, and it's more of general
  • detailed can diagnose the patient from the questions 7–18, and it highlights specific challenges in areas like task management, impulse control, and focus, which are often associated with ADHD

Result

Here comes the final part of our application. We can break it into 3 pages :

  • previous result:

This page shown in the drawer , The main purpose is to see the previous result of the kid and see if he getting better or not.
We can do the same for adults, but it only show 2 categories, which is easy to remember Unlike child test

  • Child result: pics here

This page shows after you finish the child test; it collects the points based on gender and age factor. Every category has its own points so he got high in Opposition but low in Cognitive problems and so on

  • Adult result: pics here

This page shows after you finish the adult test; it collects the points based on the number of questions.
if it is from 1-6, then we add it to overall category, and the rest added to detailed category
it only in 3 results: low , medium and high

That's it. Test and send your review. I hope you enjoyed reading the repo :)