Crowdsourcing aid data across the nation

Related tags

React sambal-sos-app
Overview

The Sambal SOS App

Formerly the Bendera Putih App

discord - users online


Table of Contents

Sambal SOS App is a social welfare platform that supports Malaysians in need by bridging the gap of social inequity.

Hop on the app if:

  • you see someone who needs help when driving or in your neighbourhood and want to report it so someone can help
  • you're looking to support other fellow Malaysians

Built:

  • By Malaysians, for Malaysians. 🇲🇾
  • Developed by passionate Malaysian developers, under this time of the MCO. 🥰
  • Living in a lockdown may feel uncertain, but we're in this together 💪 .

The #benderaputih Movement

In Malaysia, the #benderaputih movement is a social media movement urging those in urgent need of living necessities or resources to place white flags outside their homes. In this time of a pandemic, white flags placed outside homes are notices to others that they are out of food or living necessities and need help right away.

Cited from a tweet on the BFM News Twitter account.

As of 2nd July 2021, the #benderaputih movement is currently one of the largest movements in our nation, and is also trending on Twitter under the #benderaputih hashtag.

Usage

Members of our community can post a picture through this web app if they see a white flag nearby and it will be displayed on a map, so that anyone on the internet can help those in need. Users of the app can also view the white flags posted in under a 10 KM radius of their physical location, to discover those in need who are nearby and possibly provide them with the needed resources.

We believe that our project will provide the necessary support for communities nationwide, and will benefit a lot of people in our communities, especially the underserved in tough times like these.

About us

We're a team of student developers passionate to make a positive impact to our community. The development of the Sambal SOS App is a continuous process for the time being, and we believe that developing this app is a way for us to volunteer and contribute to the communities in Malaysia.

Contributing

Currently, our team consists of mostly student developers, and we are running on a 0 budget. Maintaining the Sambal SOS App involves financial costs, hence we are opening up to the public for volunteering or contributions.

This Project is completely Open Source and we welcome all efforts to help the app grow and develop

Prerequisites

This app uses multiple APIs and has a list of env variables needed to start the app

follow the .env template to setup your own

if you don't have the variables some parts of the app will not work

How to Install the app

  1. Clone the project $ gh repo clone sidharrth2002/sambal-sos-app

  2. Install Dependencies $ npm install

  3. Start the Development Server $ npm start

the script will bring you to your default browser, wait for the development server to fully start and you are ready to go

Project Structure

Directory Description
/public Stores static files and images
/src Stores main content of project

src

  • /api-> endpoint to get geolocation data
  • /app -> handles state in the app (redux)
  • /assets -> static assets
  • /components -> organize components
  • /constants -> stores configurations and constants
  • /features -> currently contains the auth slice (handles authentication and state of auth)
  • /screens handles each page of the app - Auth -> login & signup page - Foodbanks -> contains a static list of food banks and the respective page - Home -> contains the main page of the app (with the google maps component) - PrivacyPolicy -> self explanatory - ReportForm -> form page to report or request SOS
  • /style -> stores the styling of the appp
  • /translations -> contains i18n translation files
  • /utils -> extra functions to help with the app

Protocols

Please Follow these suggestions to make sure that the repo is organized and other people who wish to contribute can have a nice time doing so

if you wish to be on the main team and actively contribute, we would recommend that you join our discord server

otherwise you can:

  1. Open an issue about something
  2. Comment on Issues and Pull Requests
  3. Giving Suggestions
  4. Bug Reports

Pull Request Template


What type of change did you make?
feat (add something new) or fix (fix an issue) or refactor (no changes to features, e.g. removing comments, logs)

Describe the changes:
1.
2.
3.

Add screenshots:


[] Does your change break anything?

Mention someone for review
@someone

Branches

main -> development branch, fork or clone from this branch

production -> deployed to vercel, don't touch this

Admins

@sidharrth2002 @Shaunmak1214

contact them for more information

Monetary

If you're willing to support us financially, please do get in touch with us! Monetary donations will be primarily utilized for maintenance costs of the Sambal SOS App, which includes: server costs, domain costs, etc.

Development

Sambal SOS is built from the ground up on a monster stack: React.js (Chakra UI, Redux), Node.js (Express), PostgreSQL and Google Cloud. Read about the development workflow, the issues we faced and how we solved them here.

The frontend is hosted on Vercel, while our backend lives on App Engine.

If you have experience in any of the following skills, you're exactly who we're looking for to join the team:

  • frontend development (JavaScript, React.js)
  • backend development (Node.js, Express.js)
  • social media management
  • crowdsourcing data

Other

If you're interested to support us in other ways, do reach out to us using any of the contact details listed in the Contact us section.

Features & Milestones

The features and milestones that we plan to achieve for Sambal SOS App are:

  • @mentions, #refs, links, formatting, and tags supported
  • Users having the ability to post white flag incidences
  • Users having the ability to view white flag incidences within a 10 KM radius of the user's location
  • Users having the ability to view food banks within a 10 KM radius of the user's location

Contact us

Let's connect! 📧

Email
Discord 👾

Publicity

In the previous months, our app has gained the attention of the media, helping us widen our userbase

here are the articles related to our app:

  1. JUICE (https://juiceonline.com/bendera-putih-app-track-white-flag-food-bank-locations/)
  2. Vulcan (https://vulcanpost.com/751770/kibar-bendera-putih-app-find-white-flags-food-banks/)
  3. SAYS (https://says.com/my/tech/student-built-bendera-putih-app-allows-users-to-upload-white-flags-food-banks-on-map)
  4. TechNave (https://technave.com/gadget/Local-students-developed-an-app-called-Sambal-SOS-to-assist-the-Bendera-Putih-movement-25579.html)
  5. Firstclasse (https://firstclasse.com.my/bendera-putih-app-sambal-sos-developers/)
  6. The Star (https://www.wargabiz.com.my/2021/07/07/four-local-students-launched-sambal-sos-app-for-msians-to-locate-white-flags-food-banks/)
  7. KL foodie (https://klfoodie.com/sambal-sos-app-bendera-putih-malaysia)

Please help us spread word about the app on your favorite social media platforms

people knowing about our existance helps grow the app and provides assistance to the needy, especially during times of crisis

License

Sambal SOS App is open source, licensed under the MIT license

Comments
  • FEAT Optimize map + add clustering

    FEAT Optimize map + add clustering

    What type of change did you make? Either:

    • feat

    Changes

    1. Modified map icons to use PNG for better performance
    2. Added clustering to map

    Screenshots: image image

    Video demo : https://streamable.com/dm3b2x

    Link to Trello Card (if applicable): https://trello.com/c/Q5BMWLmp/6-cluster-markers-on-map https://trello.com/c/LEGbD3WY/36-set-google-maps-markers-to-use-png-instead-of-svg

    Checklist:

    • [x] My changes don't break anything
    • [x] I have removed all console logs
    • [x] I have applied prettier before pushing

    Mention someone for review @sidharrth2002 @Shaunmak1214

    opened by kilowatt- 10
  • FEAT added pagination to food banks

    FEAT added pagination to food banks

    added pagination and fake loading animation to food banks

    https://user-images.githubusercontent.com/63299413/125552984-17526a2a-8a84-4fdd-9be7-d84e0f975214.mov

    [x] my change doesn't break anything

    @sidharrth2002

    enhancement 
    opened by Ronald545 9
  • Button to focus on current location

    Button to focus on current location

    Floating button on top left of the page. Once clicked, should center the map on the user's current location. Should also check for case where the phone denies permission. If so, don't do anything.

    feat frontend 
    opened by sidharrth2002 4
  • feat: enhancement on phone input field

    feat: enhancement on phone input field

    What type of change did you make? feat (enhancement on phone input field)

    Describe the changes:

    1. Added fail save for the phone number input field. Explanation: So on the previous version if once you start typing on the phone number input field, you'll have to at least type something in it even if you don't want to have phone number incuded. How that this is added, people that accidentally clicked or typed on the input field is not forced to input anything if they don't want to.

    No screenshots.

    [x] Does your change break anything?

    Mention someone for review @sidharrth2002

    opened by Shaunmak1214 4
  • Fix Google Login by using redirect

    Fix Google Login by using redirect

    What type of change did you make? Either:

    • fix (fix an issue)

    Changes

    1. Add GoogleLanding Component to handle redirect callback and send request to server
    2. Switch from uxMode="popup"(default) to uxMode="redirect"

    Important Note: At the moment, this method is very volatile. There is one bug to take note of. Steps to reproduce:

    1. Login once on localhost
    2. Logout
    3. Clear cookies
    4. Login again
    5. There is a good chance you will see a "redirect_uri_mismatch" error.

    Also add an extra line to your env: REACT_APP_ENVIRONMENT=development

    The only way we can fix this is to take down the site and test it in production, to see if this is an issue with localhost.

    Screenshots:

    Link to Trello Card (if applicable):

    Checklist:

    • [x] My changes don't break anything
    • [x] I have removed all console logs
    • [x] I have applied prettier before pushing

    Mention someone for review @kilowatt- @Shaunmak1214

    bug 
    opened by sidharrth2002 3
  • FIX: added monorepo readme and fixed lint-stage scripts

    FIX: added monorepo readme and fixed lint-stage scripts

    Wrote Readme For Monorepo

    1. Wrote Readme and Contributing markdown files for monorepo
    2. Added prefix=packages/webapp for all lint-stage scripts to fix husky issue

    Screenshots: Screenshot_2021-12-23_20-23-22

    • [/ ] My changes don't break anything
    • [ /] I have removed all console logs
    • [/ ] I have applied prettier before pushing

    Mention someone for review @sidharrth2002

    opened by Ronald545 2
  • REFACTOR: added guide to obtain google oauth client id

    REFACTOR: added guide to obtain google oauth client id

    REFACTOR: added guide to obtain google oauth client id Changes

    1. wrote readme
    2. added 4 screenshots
    • [/] My changes don't break anything
    • [/] I have removed all console logs
    • [/] I have applied prettier before pushing

    Mention someone for review @sidharrth2002

    opened by Ronald545 2
  • Remove clunk from README

    Remove clunk from README

    What type of change did you make? Either:

    • refactor (no changes to features, e.g. removing comments, logs)

    Changes

    1. Clean README

    Screenshots:

    Link to Trello Card (if applicable):

    Checklist:

    • [x] My changes don't break anything
    • [x] I have removed all console logs
    • [x] I have applied prettier before pushing

    Mention someone for review @someone

    opened by sidharrth2002 2
  • REFACTOR Combined All MD files into one

    REFACTOR Combined All MD files into one

    moved contributing and publicity section into one readme added more social icons to show people our social media presence

    Screenshot 2021-07-22 at 11 24 37 AM Screenshot 2021-07-22 at 11 24 29 AM Screenshot 2021-07-22 at 11 24 24 AM

    [x] my pr doesn't break anything

    @sidharrth2002

    opened by Ronald545 2
  • feat: chinese translation done

    feat: chinese translation done

    FEAT

    Either:

    • feat: Chinese Translation.

    Changes

    1. Chinese translation done
    2. Chinese flags

    Video 🤣: https://user-images.githubusercontent.com/60981304/126525420-07fb97d2-c674-4ede-8573-e606f8d06932.mov

    Link to Trello Card (if applicable):

    Checklist:

    • [✅] My changes don't break anything
    • [✅] I have removed all console logs
    • [✅] I have applied prettier before pushing

    Translation credits goes to @sinyin-ong

    Mention someone for review @sidharrth2002 @sinyin-ong @kilowatt-

    opened by Shaunmak1214 2
  • REFACTOR Update Readme

    REFACTOR Update Readme

    added more information tags to readme added contributing.md and publicity.md added table of contents and logo to readme

    Screenshot 2021-07-21 at 1 45 38 PM Screenshot 2021-07-21 at 1 45 49 PM Screenshot 2021-07-21 at 1 46 46 PM

    [x] my pr doesn't break anything

    @sidharrth2002

    opened by Ronald545 2
  • JUNK CODE

    JUNK CODE

    Lots of random pieces of unused code

    backend (packages/server):

    • src/controllers/test.js
    • src/controllers/user.controller.js
    • src/controllers/upload.controller.js
    • src/routes/upload.routes.js
    • src/routes/users.routes.js
    • imported in src/routes/index.js

    • minio code causes the need of an unused .env variable which will confuse new contributors

    opened by Ronald545 1
Releases(v2.0.1)
Owner
Sidharrth Nagappan
Full Stack Developer | Building the tech of tomorrow
Sidharrth Nagappan
Edvora App is a web application based on an external API, showing data about different types of products and the user can filter these data by choosing a specific state, city or product name. Build with React.js

Edvora App is a web application based on an external API, showing data about different types of products and the user can filter these data by choosing a specific state, city or product name. Build with React.js

Kyrillos Hany 5 Mar 11, 2022
React components for efficiently rendering large lists and tabular data

React components for efficiently rendering large lists and tabular data. Check out the demo for some examples. Sponsors The following wonderful compan

Brian Vaughn 24.5k Jan 7, 2023
⚛️ Hooks for fetching, caching and updating asynchronous data in React

Hooks for fetching, caching and updating asynchronous data in React Enjoy this library? Try the entire TanStack! React Table, React Form, React Charts

Tanner Linsley 32.1k Jan 9, 2023
React Hooks library for remote data fetching

Introduction swr.vercel.app SWR is a React Hooks library for remote data fetching. The name “SWR” is derived from stale-while-revalidate, a cache inva

Vercel 25.2k Jan 4, 2023
JavaScript data grid with a spreadsheet look & feel. Works for React, Angular, and Vue. Supported by the Handsontable team ⚡

Handsontable is a JavaScript component that combines data grid features with spreadsheet-like UX. It provides data binding, data validation, filtering

Handsontable 17.4k Jan 1, 2023
React components for efficiently rendering large lists and tabular data

react-window React components for efficiently rendering large lists and tabular data React window works by only rendering part of a large data set (ju

Brian Vaughn 13.5k Jan 4, 2023
A collection of composable React components for building interactive data visualizations

an ecosystem of composable React components for building interactive data visualizations. Victory Contents Getting Started Victory Native API Document

Formidable 10.1k Jan 3, 2023
Data Visualization Components

react-vis | Demos | Docs A COMPOSABLE VISUALIZATION SYSTEM Overview A collection of react components to render common data visualization charts, such

Uber Open Source 8.4k Jan 2, 2023
The best JavaScript Data Table for building Enterprise Applications. Supports React / Angular / Vue / Plain JavaScript.

Module SonarCloud Status ag-grid-community ag-grid-enterprise AG Grid AG Grid is a fully-featured and highly customizable JavaScript data grid. It del

AG Grid 9.5k Dec 30, 2022
:black_medium_small_square:React Move | Beautiful, data-driven animations for React

React-Move Beautiful, data-driven animations for React. Just 3.5kb (gzipped)! Documentation and Examples Features Animate HTML, SVG & React-Native Fin

Steve Hall 6.5k Jan 1, 2023
Enable Fast Refresh for remote data in NextJS.

next-remote-refresh Utilize Fast Refresh for remote data in NextJS. ⚠️ This solution relies on undocumented APIs and may break in future NextJS update

Travis Arnold 153 Dec 23, 2022
Space Traveller hub is a web application that works with the real live data from the SpaceX API

Space Traveller hub is a web application that works with the real live data from the SpaceX API. It's a web application for a company that provides commercial and scientific space travel services.

Roland MWEZE 3 Feb 8, 2022
An SST app that stores the telemetry data collected by the SST CLI.

Telemetry An SST app that collects telemetry data from the SST CLI and sends the events to Amplitude. It also backs up the events to AWS S3. Architect

Serverless Stack 3 Jan 23, 2022
Fetching data from REST COUNTRIES API, this app (mobile version for now) gives information like area, population, capital, and borders for 195 countries from seven continents.

Space Travellers' Hub World Countries App works with an API which returns informations about 195 countries. Fetching data from REST COUNTRIES API, thi

Nicolae Pop 7 Aug 8, 2022
Web app that combines data from HowLongToBeat and OpenCritic.

Should I Play This? Website allows users to search for games and the results merge critic's average rating from OpenCritic and the amount of time to b

Faiz-ur Rahman 43 Dec 16, 2022
Real-time covid data in Brazil states.

Brazil Covid Data Brazil Covid Data is a web application that allows you to see information about the pandemics on your state just by hovering it on t

Caio Lima 5 Feb 15, 2022
Mutated data-store for SolidJS, inspired by React-Redux

solid-mutant Mutated data-store for SolidJS, inspired by React-Redux. Synopsis Redux relies on immutability and referential equality to allow applicat

Lantern 4 Mar 15, 2022
Browse and view the exported Facebook Messenger data / messages.

Facebook Messenger exported JSON viewer What's this? This is a simple tool to view Facebook Messenger exported JSON files. I made the UI into a Messen

Yukai Huang 18 Dec 3, 2022
Browse and view the exported Facebook Messenger data / messages.

Facebook Messenger exported JSON viewer What's this? This is a simple tool to view Facebook Messenger exported JSON files. I made the UI into a Messen

Yukai Huang 9 Apr 6, 2022