XHacks 2021 Startup Track Winner: Be Heard. Educate, Enact, Empower. No voice left behind. (backend)

Overview

Be Heard: X Hacks 2021 Submission

Educate, Enact, Empower. No voice left behind. logo

Inspiration

To say 2020 was an eventful year would be an understatement. More than ever, social activism is at the forefront of global headlines and both social impact investing and activism are rising at astronomical rates. Because of all of this, we have created Be Heard. Harnessing natural language processing and data powered by global news syndicates, Be Heard is an information services platform that guarantees that every piece of news is easily digestible and ensures that no one’s voice goes unheard.

What it does

Introducing Be Heard. A one-stop destination for issues around the world, Be Heard is the ultimate tool to educate, emphasize, and enact on critical current events.

Focused on empowerment, our app offers two pathways for users to use our platform. ###Educate On the Educate screen, we use the Contextual Web Search API which harnesses webscraped data from the world’s largest news providers to generate a curated news feed based on a user’s interests, including a reading calendar, spotlight section, and recent headlines section. beHeard

  • First, we have a reading calendar which is intended to hold different articles, podcasts, books, and more for each day of the month.
  • Next, we have the spotlighted section, with posts created by other users that align with your interests. This is what makes our app truly special. It’s not just a news app, it’s a platform for people to have their voices heard.
  • Lastly, we have a collection of news related to the users interests as well as recent headlines. ###Enact On the enact pathway, users have a plethora of ways to use their newfound knowledge to make a difference in the world. Here are our list of features:
  • Create Spotlight: Users can pay to create and post their own articles to spread awareness on a topic they are passionate about. enact2
  • Email Representatives: Users can email their local representatives about a specific issue with a single click.
  • Sign Petitions: Users can easily find and fill out petitions by filtering by topic.
  • Generate Linktree: Users can choose various forms of resources to add to a customized Linktree. A Linktree is a common tool used by social activists to gather information all in one place. Our application makes it easy for people to participate in this.
  • Generate Infographic: Users can either input their own information or bring in outside sources and let our NLP text summarization model summarize it and then produce a shareable infographic.

How we built it

Our team decided to use React Native Expo for the frontend and Flask for our backend servers, with one hosted on AWS and MongoDB Atlas as our database.

stacked

Frontend

Our frontend was built as a React Native mobile app using Expo, capable of running on both iOS and Android mobile devices. By sending HTTP requests to our REST API on our backend, we can retrieve news articles relevant to the user.

Design Flow

figma

Backend

For handling user authorization and database management, we decided to use a Flask server which we hosted on AWS, using Amazon’s Elastic Beanstalk This server is connected to a MongoDB Atlas cluster, also hosted on the cloud, where we store user credentials and user-generated content. We also implemented JSON web tokens to authenticate users.

For hosting our ML model, we used another Flask server, this time hosted through DigitalOcean’s Droplets.

Finances

After conducting market research on possible competitors, we have concluded that Be Heard sits tight at the intersection of the Information Services Space and the Social Media Networking market, giving Be Heard a total Share of Obtainable Market of over 1 million dollars, and provides users with an unparalleled focus on activism and breadth of news. stonks

Taking our costs of operation (Cloud as a Service, Database, API integration) as well as our projected costs with a targeted Monthly Average Users of 25,000, we estimate profitability by Year 3 of operation.

cash_money

Challenges we ran into

A few hours before the deadline, our server stopped displaying information for the last two sections of our Educate page. Although this was disappointing, we can still tell you that the user could view the entire collection by clicking at the bottom. They could also see an article preview as well as a link to the complete article when they click on the image.

Accomplishments that we're proud of

Serving a NLP model through Digital Ocean Configuring our flask server and CI/CD pipeline on AWS Building a multi-layered app navigation flow Bringing a high-fidelity mockup to life

What we learned

  • React Native
  • MongoDB
  • Flask
  • AWS
  • Digital Ocean
  • Ubuntu OS

What's next for Be Heard

The Be Heard team is looking forward to completing the implementation of the features on the Enact page. These features include the petition platform, Linktree generator, and a more advanced infographic creator.

We also hope to monetize our app by having sponsored posts for the spotlight section and selling anonymized and aggregated data of what news/topics that users feel are important to them to news providers.

Most importantly, we can’t wait to see the impact this app can have on the world of social activism!

Deployment

Our deployment is at this link (must open with the Expo Go mobile app): http://exp://gc-fxb.anonymous.be-heard-frontend.exp.direct:80 expo qr code

Owner
Be Heard: XHacks 2021 Startup Track Winner
Markov Chain Composer

Markov Chain Composer Using Markov Chain to represent relationships between words in song lyrics and then generating new lyrics.. ahem interpretive po

Kylie 85 Dec 09, 2022
Buildium-to-stessa - Automation to assist in converting Buildium transactions into Stessa format

Buildium Transactions - Stessa Transactions There is currently no third-party i

Austin Comstock 4 Apr 17, 2022
A collection of useful functions for writers to analyze text/stories.

AuthorTools AuthorTools provides a multitude of functions for easily analyzing (your?) writing. AuthorTools is made especially for creative writers wi

1 Jan 14, 2022
A Gura parser implementation for Python

Gura parser This repository contains the implementation of a Gura format parser in Python. Installation pip install gura-parser Usage import gura gur

JWare Solutions 19 Jan 25, 2022
This repo is a collection of programs and websites templates too

📢 Register here for Hacktoberfest and make four pull requests (PRs) between October 1st-31st to grab free SWAGS 🔥 . IMPORTANT While making pull requ

Binayak Jha - 2 7 Oct 03, 2022
Streamlit Component, for a Chatbot UI

st-chat Streamlit Component, for a Chat-bot UI, example app authors - @yashppawar & @YashVardhan-AI Installation Install streamlit-chat with pip pip i

Yash AI 99 Jan 07, 2023
A Powerful Tool For Making Combo List(All possible modes)

ComboMaker A Powerful Tool For Making Combo List Introduction Check out all possible Combo list build modes with this tool =) How to Install Open the

MasterBurnt 7 Jan 07, 2023
This program tries to book a tennis court slot in either Southwark Park or Tanner Street Park in Southwark, London.

Book tennis courts in London This program tries to book a tennis court slot in either Southwark Park or Tanner Street Park in Southwark, London. Note:

Daniele 1 Jul 25, 2022
Set of scripts that schedules employees for shifts throughout the week based on availability, shift times, and shift necessities

Automatic-Scheduler Set of scripts that schedules employees for shifts throughout the week based on availability, shift times, and shift necessities *

Matthew 1 May 01, 2022
Plux - A dynamic code loading framework for building plugable Python distributions

Plux plux is the dynamic code loading framework used in LocalStack. Overview The

LocalStack 65 Dec 20, 2022
This Curve Editor, written by Jehee Lee in 2015

Splines Abstract This Curve Editor, written by Jehee Lee in 2015, is a freeware. You can use, modify, redistribute the code without restriction. This

Movement Research Lab 8 Mar 11, 2022
Python script that automates the tasks involved in starting a new coding project

Auto Project Builder Automates the repetitive tasks while starting a new project Installation Use the REQUIREMENTS.txt file to install the dependencie

Prathap S S 1 Feb 03, 2022
Animation retargeting tool for Autodesk Maya. Retargets mocap to a custom rig with a few clicks.

Animation Retargeting Tool for Maya A tool for transferring animation data between rigs or transfer raw mocap from a skeleton to a custom rig. (The sc

Joaen 62 Dec 19, 2022
A synchronous, single-threaded interface for starting processes on Linux

A synchronous, single-threaded interface for starting processes on Linux

Spencer Baugh 27 Jan 28, 2022
GWAS summary statistics files QC tool

SSrehab dependencies: python 3.8+ a GNU/Linux with bash v4 or 5. python packages in requirements.txt bcftools (only for prepare_dbSNPs) gz-sort (only

21 Nov 02, 2022
CalHacks 8 Repo: Megha Jain, Gaurav Bhatnagar, Howard Meng, Vibha Tantry

CalHacks8 CalHacks 8 Repo: Megha Jain, Gaurav Bhatnagar, Howard Meng, Vibha Tantry Setup FE Install React Native via Expo, run App.js. Backend Create

0 Aug 20, 2022
A simple script written using symbolic python that takes as input a desired metric and automatically calculates and outputs the Christoffel Pseudo-Tensor, Riemann Curvature Tensor, Ricci Tensor, Scalar Curvature and the Kretschmann Scalar

A simple script written using symbolic python that takes as input a desired metric and automatically calculates and outputs the Christoffel Pseudo-Tensor, Riemann Curvature Tensor, Ricci Tensor, Scal

2 Nov 27, 2021
A Python module for decorators, wrappers and monkey patching.

wrapt The aim of the wrapt module is to provide a transparent object proxy for Python, which can be used as the basis for the construction of function

Graham Dumpleton 1.8k Jan 06, 2023
Refer'd Resume Scanner

Refer'd Resume Scanner I wanted to share a free resource we built to assist applicants with resume building. Our resume scanner identifies potential s

Refer'd 74 Mar 07, 2022
This repository requires you to solve a problem by writing some basic python code.

Can You Solve a Problem? A beginner friendly repository that requires you to solve familiar problems with python. This could be as simple as implement

Precious Kolawole 11 Nov 30, 2022