:triangular_flag_on_post::triangular_flag_on_post::triangular_flag_on_post:ALERT! ALERT! ALERT!:triangular_flag_on_post::triangular_flag_on_post::triangular_flag_on_post:
develop is now the default branch to work against for all development (edited)
Tien or Roland will merge develop into master periodically when it’s time to update the demo!
(more info here on how to work with master, develop and feature branches: https://www.atlassian.com/git/tutorials/comparing-workflows/gitflow-workflow)
This project meets on Monday at the westside hacknight. We are working with a program of the City of LA's Attorney's Office which supports the Criminal Record Clearing Project by administering the Los Angeles County Homeless Court Program. HEART (Homeless Engagement and Response Team) works with adults who are experiencing homelessness or are at risk of experiencing homelessness to help them resolve eligible traffic and pedestrian infraction citations by engaging in services instead of paying fines and fees they cannot afford.
HEART staff connects with potential program participants in person at events providing access to a variety of social, medical and human services. Provided they engage with a certain number of service providers, the HEART team will collect relevant personal information to research and investigate any outstanding eligible citations participants may have. Staff will then file motions with the relevant courts to request a dismissal and/or suspension of fines, and a recall of associated warrants.
Hack for LA has been working with the program's staff to design and build a better processing system, helping to streamline in-person client intake, data processing and the filing of motions.
Find us on the Hack for LA Slack on the channel #heart, or join us at one of our meetings, every Monday night in Santa Monica.
This serves both the backend api and frontend pages for the processing system and will be used to review and process participant info. Below is a brief overview of the tech involved in this project.
main-app
docker-compose build
docker-compose up
once the obove command is finished running. This will bring up heart_node, heart_postgres, and heart_pgadmin containers and start the application.demo
password: pwd123
pgadmin@example.com
password: pgadmin
.See "How to browse postgres using pgadmin" section below if you wish to see the db structure.
docker-compose up
docker exec -it heart_node npm test
(This will work for now but it is slow so we are exploring other options)This project provides a dockerized node
app, postgres
and pgadmin
.
A local database is not required to start working on this project.
To use what we've provided, you'll need the latest version of NodeJS, Docker and Docker Compose (comes with a standard Docker Desktop installation for Mac and Windows.)
\design // contains design files
\main-app // contains the full application
\api // contains all the backend code
\client // contains the front-end code
docker-compose.yml
README.md // you are reading it
User: demo Password: pwd123
User: pgadmin@example.com Password: pgadmin
Use your favorite Command Line Interface (e.g. bash
or powershell
) and change into the main-app
directory.
Enter the commands:
docker-compose build
docker-compose up (after above command finishes)
This downloads and builds the base Docker images (if needed), and starts all services.
node
can now be accessed from http://localhost:3000. It serves the main-app.
pgadmin
can now be accessed from http://localhost:8080. It's a GUI for browsing postgres.
postgres
service exposes the standard PostgreSQL port 5432
. It serves the main-app database.
[SERVICE]
is node
, postgres
or pgadmin
If one service or another is already started:
docker-compose up [SERVICE]
To stop the service(s):
docker-compose stop [SERVICE]
postgres
serviceThe default port is 5432
The default postgres credentials are:
POSTGRES_USER=postgres
POSTGRES_PASSWORD=postgres
Use the PostgreSQL connection URI:
postgresql://<user>:<password>@<host>:<port>/<database>
With our defaults:
postgresql://postgres:postgres@localhost:5432/heart
pgadmin
login credentials are:**PGADMIN_DEFAULT_EMAIL=pgadmin@example.com
PGADMIN_DEFAULT_PASSWORD=pgadmin
Go to localhost:8080 and login.
Then trom the top navbar Object > Create > Server.
On the General tab, fill in whatever Name you want.
On the Connection tab, fill in:
Hostname/address: postgres
(the name of the local service, as noted in docker-compose.yml
Port: 5432
(default)
Maintenance database: postgres
(default)
Username: postgres
(from POSTGRES_USER
)
Password: postgres
(from POSTGRES_PASSWORD
)
The rest of the fields can be left blank. Click Save to connect.
In the future, the server you saved can be used again
If the services are started and stopped as outlined above, changes made within the postgres
database server (e.g. creating tables, inserting data) and the pgadmin
client (e.g. server connections, preferences) will persist between restarts.
An alternative command can stop and completely remove all services and any associated local storage. *This is destructive*:
docker-compose down [SERVICE]