/shoot-i-smoke

See your city's air pollution measured in daily cigarettes. iOS/Android.

Primary LanguageTypeScriptGNU General Public License v3.0GPL-3.0

Sh**t! I Smoke

Know how many cigarettes you smoke based on the pollution of your location. πŸ’©πŸš¬

Actions Status GitHub David Maintainability Join the community on Spectrum

app-store google-play

πŸ“· Screenshots

screenshot-1 screenshot-2 screenshot-3 screenshot-4 screenshot-5

πŸ“± Try it on Expo

This app is bootstrapped with Expo, you can download the Expo app on the App Store or Play Store, and enter the url provided below. We have 2 release channels:

Release Channel Version Description Url
Production v1.4.0 Same version as Sh**t! I Smoke on the App Store and Play Store. https://exp.host/@amaurymartiny/shoot-i-smoke?release-channel=production
Staging v1.5.0 Latest version currently in development: newest features, may contain bugs. https://exp.host/@amaurymartiny/shoot-i-smoke

πŸ”¨ Build it yourself

Before developing the app, you need to fetch your own API tokens for the following services:

Service Url Comments
World Air Quality Index http://aqicn.org/api/ Required. You can use the dummy one in app.example.json for development.
Algolia Places https://community.algolia.com/places/ (Get Started button on the bottom) Optional, lower API rates if not provided.
Google Maps for iOS https://developers.google.com/maps/documentation/ios-sdk/start Optional in development.
Google Maps for Android https://developers.google.com/maps/documentation/android-api/ Optional in development.
Sentry Bug Tracking https://sentry.io Optional.
Amplitude Analytics https://amplitude.com Optional. Note: we never track PII.

Then run the following commands:

git clone https://github.com/amaurymartiny/shoot-i-smoke
cd shoot-i-smoke
yarn install

# Copy the file that contains secrets
cp app.example.json app.json

yarn start

In app.json, replace all the placeholders for API keys and tokens with the ones you generated for yourself. For those that are optional, you can just put null (without quotes).

This app is created with Expo, using React Native. When you run yarn start, the Expo packager will show, and you can either:

  • install the Expo app, scan the displayed QR code, and run the app on your mobile phone directly.
  • open the Android simulator.
  • open the iOS simulator.

All the code lives in the App/ folder. The app itself is pretty small, so it should be fairly easy to navigate through the files.

πŸ™‹ Contribute

If you find a bug, or if you have an idea for this app, please file an issue here. We really appreciate feedback and inputs!

πŸ‡¬πŸ‡§πŸ‡«πŸ‡·πŸ‡ͺπŸ‡ΈπŸ‡¨πŸ‡³ You may also contribute with translations with our online tool POEditor.

For code contribution, the codebase heavily relies on functional programming principles via the fp-ts library. The codebase itself is quite simple, so even if you're beginner to functional programming, it shouldn't be hard to follow along.

More information on contributing here.

πŸ”¬ Tests

The codebase unfortunately isn't much covered by tests. Check out the *.spec.js files in the project for tests. If you're interested to help out, have a look at #19.

πŸ“° License

GPL-3.0. See LICENSE file for more information.

⭐ Credits

Created with ❀ by Marcelo & Amaury.

A huge thanks to the following contributors for their amazing work:


Sh**t! I Smoke - See your city's air pollution measured in daily cigarettes. | Product Hunt Embed