Giter VIP home page Giter VIP logo

virusmapbr's Introduction

VirusMapBR

An open-source COVID-19 tracking app built with Flutter and Firebase

The VirusMapBR was created in the begining of COVID-19 pandemic as a way to track the evolution of the disease in Brazil using data from our community. The idea was to create an independent crowdsourced map of the Coronavirus cases in Brazil that could be used to better understand the situation in the country and to allow people to handle thir lifes with better information. However, the app couldn't be published in the Apple and Google app stores since it was related to COVID-19 and not associated to official entities or health instutitions.

About the Author

Hi! My name is Manoel Lemos and I'm a computer engineer from Brazil. I used to be an entrepreneur and today I'm a parter at Redpoint eventures, a VC fund focused in early-stage startups in the Brazilian and LatAm ecosystems. I'm passionate about technology and its potential to positively impact society. I love to build things and I'm always learning new stuff, writing some code and soldering some components.

This project was my introduction to Dart, Flutter and Firebase and it started in a very different way. You can read more about the origins and motivations of the project, and the learnings with the VirusMapBR development journey in my blog.

Requirements

  • Dart 2.9.2
  • Flutter 1.20.3
  • Firebase
  • Wordpress (optional)

Getting Started

It should be very easy to clone the repo and run the app in your machine. The complications will be mostly around configuring Firebase.

1. Clone the repository in your development machine

2. Create a new project on Firebase

Once the project is created, you'll need to add the Android and iOS apps to your project:

3. Setup Firebase for Android

Copy the generated google-services.json to the folder /android/app/src/debug/ in the project tree.

Run the app in the Android Emulator and wait for a confirmation that everything is fine from Firebase.

4. Setup Firebase for iOS

Copy the generated GoogleService-Info.plist to the folders /ios/debug/ and /ios/release/ in the project tree.

Run the app in the iOS Simulator and wait for a confirmation that everything is fine from Firebase.

5. Setup Firebase Authentication

We use two sign-in methods: Google and Phone. You'll have to activate both.

6. Setup Cloud Firestore

We use the Firebase Cloud Firestore to store the app data. You'll have to enable it and create a document for our stats.

Create a collection called stats and a document with the id dashboard with the following fields:

7. Setup Firebase Storage

We use the Firebase Storage to store the user submited avatars. Just enable the service.

8. Setup Crashlytics

We use Firebase Crashlytics to monitor the app crashes. Just enable the service.

9. Wordpress (optional)

We use an Wordpress as a CMS for the news and help entries of the app. You can use yours if you want.

To do so, you'll have to change the code in the files help_entries_list.dart, wp_latest_news.dart and news_provider.dart to use your instance of Wordpress. Search for the baseUrl parameter and adjust it for your install.

HeyHo! That's all!

If everything is fine, you'll be able to run the app again and use it on your development devices or emulators.

I hope you enjoy the ride, learn new stuff and use it to build new things and help others!

Thanks and acknowledgments

During this journey I had the support of many friends. From changing my mind towards the final design of the app, to solving technical challenges, designing the look and feel of the app, refining the user experience, trying to workaround the app store's constraints, writing the terms-of-use and the privacy policy, reviewing the app and supporting the idea. It was such an honor to have the support of these incredible people and I'm forever thankfull.

Thanks, you rock!

virusmapbr's People

Contributors

mlemos avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar

Forkers

mzdn

virusmapbr's Issues

Question

Does the app work in other countries

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.