open-source-ideas / ideas

šŸ’” Looking for inspiration for your next open source project? Or perhaps you've got a brilliant idea you can't wait to share with others? Open Source Ideas is a community built specifically for this! šŸ‘‹
6.59k stars 221 forks source link

Cross Platform mobile application for heart attack first aid (Runners) #337

Closed FirasSharp closed 4 months ago

FirasSharp commented 2 years ago

Project description

The Application should alert people within a Radius of 100m if someone has a heart attack, so those people could rush and give first aid while the ambulance is on its way.

Relevant Technology

The application is a cross-platform application using one single codebase. The framework that we will use will be MAUI a C# framework, since as of May 2022 it is confirmed by Microsoft to be production ready. While for the backend we should use Node js since it can handle a lot of requests.

Complexity and required time

It can take between 2-4 weeks for development, testing, and QA.

Complexity

Required time (ETA)

Categories

KOLANICH commented 2 years ago

Your idea feels like bullshit.

  1. since the app is intended to be runned on Linux and BSD (iOS) systems, C# is am unsuitable language.
  2. the rest of the stack is also chosen unwisely, and using a websocket will drain the battery.
  3. is it possible to detect heart attacks from wristband pulse measurement signal at all? If not automatic detection the whole idea makes no sense at all, if one has a heart attack, the last thing he will do is opening a phone to open a heart attack app.
  4. how abuse with sending messages of fake heart attacks is going to be deterred? Is the service a paid one with identity check?
  5. runners are likely to run in places with people like parks, it is likely they will be noticed anyway. if they run in secluded places, they will not be helped at all.
  6. how are you going to make ordinary people to install the app draining their phone battery and eating mobile traffic every day just to be able to help someone with very low probability?

Here is a better one.

  1. parks install BLE-based wireless infrastructure
  2. parks also install loudspeakers
  3. A runner voluntarely registers in a nationwide service with his health insurance ID. The service gives him a token to input into the wristband using configuration tools. The fee for using the service is included into insurance plan and must be minimal and the profit of the operator of the network must be zero.
  4. runners' wearable equipment detects heart attacks itself, then sends encrypted notifications to park infrastructure after some safety checks to avoid fake calls.
  5. the infrastructure trilaterates the runner, dispatches the ambulance, warns strangers through loudspeakers and instructs them on the closest defibrillator.
FirasSharp commented 2 years ago

Hey @KOLANICH, thank you for answering. First, MAUI is a new framework for building cross-platform applications in C# so you are failing the argument there already. Since there is gonna be a restful API (i wanted to change the idea to using firebase) so WebSocket is needed. Btw I am not gonna discuss along with you since this application already exists in Denmark and it's widely used, also in Germany we have a similar application to call emergency services by just pressing a button :)

Wish you the best!

KOLANICH commented 2 years ago

First, MAUI is a new framework for building cross-platform applications in C# so you are failing the argument there already.

If Android uses JVM and native code, then it means that only native code apps and JVM-based apps should be used. Android is a pretty piece of shit, one cannot install .Net virtial machine globally into the system for the most of phones, as Windows has it installed and as one can install it into Linux by using the Microsoft and/or Mono repos. So .Net apps are not suitable for Android. Neither Qt apps are suitable for Android. When Qt is a part of system, as it is in Linux distros, Plasma Mobike and Sailfish OS, then they are suitable.

this application already exists in Denmark and it's widely used, also in Germany we have a similar application to call emergency services by just pressing a button :)

Nice to know, thank you.

FirasSharp commented 2 years ago

@KOLANICH there is no need to install .NET on android, pls check the link that I provided above. MAUI will compile to an APK so it can be installed and used on android phone, it is the same concept of like building an application in react native but in stead of JS the app will be builded in C#.

Btw you are more then welcome.

KOLANICH commented 2 years ago

MAUI will compile to an APK so it can be installed and used on android phone, it is the same concept of like building an application in react native but in stead of JS the app will be builded in C#.

It will be a bloated apk, such apps are trash.

FredrikAugust commented 2 years ago

@KOLANICH please try to keep a friendly tone in discussions šŸ˜„

FirasSharp commented 2 years ago

MAUI will compile to an APK so it can be installed and used on android phone, it is the same concept of like building an application in react native but in stead of JS the app will be builded in C#.

It will be a bloated apk, such apps are trash.

Please don't start with the "native is the only way to go". I know that native would be the best but do we really want to build 2 different apps for each platform? When we could write once and run everywhere? But I agree with you about not using MAUI, even tho Microsoft said it's production ready, I really think it is not mature enough. I am now thinking of using React Native or flutter.

KOLANICH commented 2 years ago

I know that native would be the best but do we really want to build 2 different apps for each platform?

Of course we don't want to maintain different code bases doing the same things. But sometimes it is the only right way to do. It doesn't mean some code cannot be modularized, but bloated app is the worst solution, it's only advantage is code reuse, at the cost of shipping the whole runtime (in an ultimate case, a whole virtual machine simulating hardware with whole OS installed into it) with the app. As a user I ignore such bloated apps and don't install or use them.

When we could write once and run everywhere?

Write once and run everywhere is a good goal (and certain programming languages have been created around this goal, to generate code in programming languages native for a platform so the generated code can be used as a native solution with a thin runtike library smoothing the corners a bit), but the bloat must be minimized. One of the ways is to reuse the runtime, the same way the OS runtime and browser runtime and shared libraries are reused. Unfortunately Google, and current packaging trends on Linux ecosystem and in certain packaging managers (npm, cargo) are against this reusing.

johnsie commented 2 years ago

Rookie mistake. It won't be bloated.

Websockets and cloud push are used in all the major messaging apps and don't 'drain the battery'.

I've written a few apps in Maui for Android and am confident that there would be no performance issues if coded properly. The apps all run quickly. It's always better to speak from experience rather than hypothetically.

KOLANICH commented 2 years ago

I've written a few apps in Maui for Android

Where can we see them, both source code and the prebuilt apps?