ReachOut - An Accessible software for facilitation of various Govt. schemes for persons with disabilities
Smart India Hackathon '22 - Team TechnoSrats
Smart India Hackathon '22 - Team TechnoSrats
Table of Contents
Our idea “ReachOut” aims to build a progressive web app that makes access for the specially abled to government schemes expeditious and empowers them
The key features of ReachOut:
|
The web-app has 3 access levels implemented
- User
- Admin (Government)
- Company
- ReachOut 🚀
- NextJS
- Tailwind CSS
- PostgreSQL (using Supabase)
- Hasura GraphQL API (over the Postgres DB)
- FastAPI (for the model)
- Tensorflow (for gesture detection)
- Gensim (for document parsing)
- The entire website is designed with web accessibility (a11y) and GIGW (Guidelines for Indian Government Websites) at the forefront
- Designing web components using a color-blind friendly scheme and implemented a high-contrast UI
- Voice and keyboard navigation
- Speech to Text for search, forms and navigation
- Gesture Detection for navigation
- A full-fledged accessibility toolbar for fonts and cursors
- A profile for every user, with Aadhar Number, Disability Certificate and Resume details required
- Govt authorities can add the schemes for the disabled, and the disabled users can benefit from these schemes without leaving the portal
- Companies can register their job positions, and people with special needs can apply for those jobs, Companies can hire test candidates for accessibility testing of their products
- Map feature for locating nearby job opportunities
- SMS Notifications and status updates for the enrolled schemes and jobs
- Dashboard for Analyzing scheme responses and demographics
- Backend and Database Connectivity
- Complete the face ID login
- Add E-KYC verification on the platform, and all other financial employment-related services from APISetu for streamlining the hiring process
- Payment Gateway Integration for transparency
- Upskilling platform based on job requirements
- Resume Parsing (Partially Implemented)
- Extend the built system to other aspects of the differently abled's life
- Translation to regional languages (localization)
- Setting the standard for accessibility on government portals by utilizing state-of-the-art accessibility features
- Streamline the entire process for the user
- Increase awareness by recommending schemes
- Improve outreach and transparency of the schemes
- Social and personal empowerment by extending the same system to private firms and NGOs
- Enable efficient policy-making by analyzing the data and feedback provided by the platform
- Clone the GitHub repo
$ git clone https://github.com/saRvaGnyA/ReachOut-SIH-Prototype.git
- Enter the
client
directory. Install all the required dependencies. Ensure that remove any globally-installed packages like the React CLI, Tailwind CLI, PostCSS CLI or ESLint are uninstalled before proceeding ahead$ cd client $ yarn add
- Setup the
.env.local
file for storing the environment variables. A demo file for this is as follows:HASURA_ADMIN_SECRET = your hasura admin key NEXT_PUBLIC_SUPABASE_ANON_KEY = your supabase anon key NEXT_PUBLIC_SUPABASE_URL = your supabase public url
- If you are working on Visual Studio Code or WebStorm, it'd be convenient to install the extensions for Prettier and ESLint.
- Clone the GitHub repo
$ git clone https://github.com/devdev29/reachout_gesture_api.git
- Create a virtual environment on the anaconda command prompt (Install conda if not installed) and then switch to that virtual environment. Lets say the name of the env is test.
$ conda create -n test python=3.8 anaconda $ conda activate test
- Look for requirments.txt and install the packages.
$ pip install -r requirements.txt
- Look for the
main.py
andruntime.py
files and have them ready. (The packages for FastAPI would already be installed when you run command number 3 in the above section)
Once the required setup and installation is completed, you can start developing and running the project.
- Go to the
client
directory and run thedev
script to activate the development serverBefore pushing any commit, make sure to run the$ npm run dev
lint
script and fix any linting errorsIf you get an ESLint, Tailwind or PostCSS version conflict error, make a$ npm run lint
.env
file in theclient
directory with the following contents:SKIP_PREFLIGHT_CHECK = true
-
Locate to the
Model
directory. The models for the project are ingesture_model.tflite
file. -
Open the command prompt for anaconda and switch to the virtual environment that you created. (example: test)
$ conda activate test
-
To initiate the server, type the following in the command prompt
$ python main.py