Code Monkey home page Code Monkey logo

decarceration-platform's Introduction

DECARCERATION-PLATFORM

Netlify Status

We launched.

Live Deployed Previews

Description

This project (1) equips service providers with the tools they need to have a positive network effect and build and maintain awesome impact within and across communities, AND (2) to equip post incarcerated individuals with a single tool that guides their reentry journey so they can lead lives of purpose and positivity in their communities and families.

We believe that many reentry organizations nationally could have a more transformative impact on mass incarceration if they are provided with more incentives, reminders, and notices to collaborate as well as if they had fewer gates to reach the individuals they wish to help. We also believe many people formerly incarcerated can and will lead law-abiding lives if their reentry journeys were filled with less hurdles, more positivity, and clearer tasks. Therefore, we seek to create a platform that meets those needs.

We envision this tool to someday be launchable and customizable by any Code for America team in any state in the Unites States of America.

Sites we've set up a profile on

Democracy Lab - DP

Installation

This project uses NPM and was started with create-react-app.

Once cloned, running a npm install in web-app/ followed by npm start will start and open a development version of the website app in your browser (by your localhost).

Usage

Navigation can be done by appending routes to the end of the url in browser currently, those routes are defined in web-app/src/routes.js. Currently implemented routes:

  • /signup
  • /signin
  • /calendar
  • /home
  • /services
  • /privacypolicy
  • /termsandconditions

Screenshots will be included in the next sprint.

Contributing

See ./CONTRIBUTING.md

Credits

These contributors have submitted PRs and stayed in touch week after week

These contributors were instrumental in our initial progress (as early as September 2019)

New contributors who helped recently

Thank you all for your dedication and applied passion!

License

GNU GENERAL PUBLIC LICENSE Details here

decarceration-platform's People

Contributors

aycrazy avatar dependabot[bot] avatar flurmbo avatar gordoncaister avatar hdenisenko avatar helencbre avatar kaftand avatar knutsoned avatar kylewestendorf avatar paul-rinaldi avatar rohanrk avatar romkedehaan avatar rs6713 avatar supernova-at avatar valerikozarev avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

decarceration-platform's Issues

Realtime Congressional Updates

Updates from Wisconsin congressmen relating to incarceration can be posted daily for organizations to see what’s happening in Madison.

Add privacy policy and terms and conditions

Todo:

  • create privacy policy component and terms
  • create conditions component
  • create ./privacypolicy route
  • create ./termsandconditions route
  • ask a contributor @paul-rinaldi to use TermsFeed and return that information to you (this will be added when sprint 2 starts)
  • add links to privacy policy and terms and conditions links to footer component

Wireframe - in progress

Add onclick to empty space on day view in calendar to open modal

Likely needs to be completed after:

  • Rules-Based Authentication: (#29)

User Story:

  • As a service provider, when I click on an empty slot in the day view of the Calendar on the Calendar Page, I would like to view a modal pop up so that I can add an event to the Calendar.

May involve:

Related but can be done concurrently:

  • Create modal to create an event for the calendar: #25

Implement Front End of the Home Page

Landing Page needs to SHOW visually and DESCRIBE briefly:

  • The purpose of the project
  • What we offer to the public
  • What we offer to the service providers (link to Login/Sign Up

Elements this might include

  • Appbar with Title
  • Photos / Video
  • Parallax (eventually)

Components to Frontend:
TODO: Draft UI
TODO: Code UI

UI will be shown to Reentry Council for feedback

Record all Data Inputs and Features of Inside Out Network

#www.insideoutnetwork.net
This solution has lots of features and lots of inputs for those features.

##Todo:

  • Demo this website solution (html + js + bootstrap)
  • Record its features for Service Providers (SP) and Post Incarcerated Individuals (PII) (ask owners)
  • Evaluate / Discuss integration into our platform, identify redundancies, improve on weaknesses, how might we use this tool out of the box? how might we make this tool even more useful? (decide if we want to recode it in react since componentizing might help)

Create a usability form for feedback on the website

Questions:
How did you first feel when opening the website?
Were you able to find what you needed?
What should be changed about the website if anything?
...TBD
Could use typeform if that can work with react...

Login Button on Appbar should not be absolute

When the window viewport is reduced horizontally, the homepage becomes scrollable. And then the login button on the appbar begins crawling down the page. This is not wanted.

Found by @paul-rinaldi .

TODO: Alter CSS / use Material UI Button correctly.

Revamp readme to promote forking

• Project name: Your project’s name is the first thing people will see upon scrolling down to your README, and is included upon creation of your README file.
• Description: A description of your project follows. A good description is clear, short, and to the point. Describe the importance of your project, and what it does.
• Table of Contents: Optionally, include a table of contents in order to allow other people to quickly navigate especially long or detailed READMEs.
• Installation: Installation is the next section in an effective README. Tell other users how to install your project locally. Optionally, include a gif to make the process even more clear for other people.
• Usage: The next section is usage, in which you instruct other people on how to use your project after they’ve installed it. This would also be a good place to include screenshots of your project in action.
• Contributing: Larger projects often have sections on contributing to their project, in which contribution instructions are outlined. Sometimes, this is a separate file. If you have specific contribution preferences, explain them so that other developers know how to best contribute to your work. To learn more about how to help others contribute, check out the guide for setting guidelines for repository contributors.
• Credits: Include a section for credits in order to highlight and link to the authors of your project.
• License: Finally, include a section for the license of your project. For more information on choosing a license, check out GitHub’s licensing guide!

Set up GraphQL database for testing backend storage and lookup

Todo:

  1. Store events for a calendar in AWS -- This was actually once completed by @kaftand and @paul-rinaldi on a separate AWS account than what we now use
  2. Store login information for users - cognito (<- amplify)
  3. Store "services providers" (searchable by tag, name - RDS(more expensive), Aurora(more managed, less flexible) - compare -- SET UP THIS with Amazon RDS

RDS should comply with http://docs.openreferral.org/en/latest/hsds/ ... need to look into
Currently, we have fields:

  1. ID (will need to be generated)
  2. Label (Name, string)
  3. Type (boolean - NonProfit(0) or ForProfit(1))
  4. Program and Services (Names, Array of Strings)
  5. Description (Multiple lines of text, String)
  6. Tags (Multiple names, Array of Strings)
  7. Address (Address, String)
  8. Phone (Phone, String because of country codes or should we use number?)
  9. Fax (Fax, String or number?)
  10. Email (Email, String)
  11. Website (URL, String)

Center Calendar on Calendar Page

Restrict the Calendar Component on the Calendar Page to take up approximately 80% of the width and 80% of the height so that there are margins of space between the calendar above and below the calendar component.

Reentry Services Page

Page holds directory of services that is easy for a user to understand and gives them plenty of information about specific services near them and for them.

Website not responding when attempting route to any other page after routing to EventPage

Expected
Route to another page

Instead
Website not responding

Steps to reproduce

  1. npm start
  2. open browser at localhost:3000
  3. ctrl+shift+i (enable console logging, i.e. DOM Inspector)
  4. click Events on the navigation (at the top of the screen)
  5. click any other Link on the navigation bar (at the top of the screen)

JS Warning Produced from DOM Inspector
(Maximum update depth exceeded. This can happen when a component calls setState inside useEffect, but useEffect either doesn't have a dependency array, or one of the dependencies changes on every render.)

Load Events from AWS

As any user, when I open the Calendar Page, I would like to view up-to-date events so that I can be informed on what events are happening now and in the future.

Execute an API call to our AWS API Gateway to retrieve an array of events.
Regenerate the calendar with the array of events.

Eventually, for the full website, to keep costs lower, we would like to use a CDN or KAFKA pipeline from Google Cloud or Amazon MSK so that our up to date events are cached and our AWS API isn't getting hit every refresh of the page.

Create modal to create an event for the calendar

As a Service Provider, I would like to click on an empty space in the calendar on the day view of the calendar, a modal opens.

This modal will allow the Service Provider to:
Add a title (required)
Set the date (required)
Set the time (required)
Set if it repeats (required, default=does not repeat)
Add a description (required)
Add a location
Add an attachment

Organization Calendar

Organize different events and meetings between organizations all on one online calendar. All organizations can post events with a brief description of what will happen.

Add Roles Based Authentication/Permissions Rules to the Calendar

Goals:

  • A service provider should be able to add events to the Calendar.
  • A user, not logged in, should not be able to add events to the calendar.

This may involve:

  • AWS
  • if statements on the calendar page (or on the link to the calendar page)
  • API calls to AWS for authentication

Useful tips:

  • We might want to add a roles.js to the constants folder.

Roles:

  • Public (not logged in)
  • Service Provider (logged in)

Note to keep in mind but don't need to implement for this card.

  • Eventually (Admin (logged in - can do edit, delete, add directly on calendar))

Set Google Maps Github Secret to be deployed into production

Set REACT_APP_GOOGLE_MAPS_API_KEY to be used as an environment variable in the deployment workflow

Still unclear:
How to do this with netlify
How to do this with AWS
Is github actions needed? Is netlify needed to do what is required instead? Is it somewhat in between?

Edit: vercel may offer what we need, was should be able, vault may be needed

Create a popup to view the details of an event

As a user when I click on an event, I would like to see sufficient details of the event so that I can decide if I want to go.

Event details:

  • Title,
  • Date,
  • Start Time,
  • End Time,
  • Description

CMS - Organizations

Content management portal that allows multiple users to post and aggregate content.

Help the Cause Submission

Individuals interested in getting involved with an organization can find a directory of organizations that we partner with and their contact information.

Work on community development

We need a good plan to make sure developers are participating and planning against the backlog.

Some ideas:

  1. Create development roadmap. (visual would be helpful)
  2. Have incentives tied to releases
  3. Establish coding times (Code and Brews, Hack-n-tell, etc)
  4. Utilize CfM Hack nights for recruitments business and demos
  5. Clearly outline needs list

We would love to hear any ideas and thoughts that you have.

Overall project plan

We have MU, UWM, Marquette all willing to participate along with Render and Ekmor to help deliver services to get this project to market. @romkedehaan will be working on the overall plan to pitch for funding and get the orgs to create MOUs to solidify how they will work together.

Draft document will be completed 2nd week of Jan.

Information Sharing

Site members will be able to share new datasets, lists, or other
repositories with each other on this specialized page.

On submission of calendar event modal form, send new event to API Gateway

User Story:

  • As a service provider, when I click submit on the event modal, I would like the event to be added to the events on the calendar so that others can see it!

When the submit button is clicked or form is submitted (not sure which is best to add the onclick to), execute an API (post?) call with the new event to the AWS API gateway.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.