Skip to content
This repository has been archived by the owner on Jan 18, 2019. It is now read-only.

Latest commit

 

History

History
78 lines (46 loc) · 3.27 KB

README.md

File metadata and controls

78 lines (46 loc) · 3.27 KB

THIS IS NO LONGER ACCURATE DOCUMENTATION

For up to date docs, see here.

YouCanBenefit

home_page try it live

Documentation

If you're looking for documentation, then be sure to read the wiki.

Purpose

YouCanBenefit is a web application that increases social benefit program discoverability for people of lesser means and their allies. There are similiar projects, but where I think YouCanBenefit differs in at least some cases, is that it takes what the user likely knows -- their demographic information -- and compares against what the user likely has trouble finding -- the available social programs. It does not save user data.

Deployment quick-start

Want to run the app? Setup is documented here. Maybe read some other parts of the wiki too.

Technologies

Components

screenerClient is the web client it is written in Angular/ One useful feature is the /admin module. It allows for an admin to configure elasticsearch from a gui.

master-screener edit

api-server is the api that handles backend business logic and acts as an interface with elasticsearch.

utils are various utilities that can manage elasticsearch data. Used to seed -- create the database and put a test value in it -- download data or stream data from one elasticsearch instance to another.


developer quickstart hopefully a relatively simple set of instructions to start.

Where to go next?

refactor

  1. Refactor code into modules -- don't mess with implementation details just make modular.
  2. Break modules apart -- turn them into seperate npm modules.
  3. Test modules -- set expected code behavior
  4. refactor modules -- improve code quality
  5. document modules -- a diagram and a sentence or two
  6. combine modules -- combine modules into application
  7. Publish the code as npm modules.

client side specific

  1. split the user and admin application into two different applications
  2. make the user application vanilla
  3. implement progressive web application features
  4. make the admin application a heavier Angular application.

server side specific

  1. Production, development and test docker builds.