Subscribe to notifications of Florida driver license status changes via SMS.
- Find or open an issue that interests you and assign yourself too it. Use labels like good first issue to narrow down the list, or make it easier for others to discover. All discussion should occur here.
- Configure your local development environment (if applicable)
- Submit a pull request referencing the ticket. Please include in the pull request what work has been done, and what its attempting to resolve (the purpose), additional information
- Pull request and deployment once approved.
Front End - Is written in plain HTML, CSS, and Javascript. Its intended to be as simple and compatible as possible, with an emphasis on accessibility
Back End - The serverless framework drives this project. Most of the backend is written in typescript, but you can contribute any runtime/language you want so long as AWS Lambda + Serverless support it, here is an example.
You will need a few things to get started:
- Install docker for your relevant environment
- Install Node/NPM
- Install serverless
- Run
npm install
once you have cloned the repository - create a
secrets.dev.json
file in the root directory of this project with values like this:
{ "DATABASE_URL": "postgresql://[email protected]:54320/drivefine", "NODE_ENV": "development", "MIAMI_DADE_USERNAME": "MIAMI_DADE_USERNAME", "MIAMI_DADE_PASSWORD": MIAMI_DADE_PASSWORD "MIAMI_DADE_COUNTY_AUTH_KEY": "MIAMI_DADE_COUNTY_AUTH_KEY", "BROWARD_COUNTY_AUTH_KEY": "BROWARD_COUNTY_AUTH_KEY", "TWILIO_CLIENT_ID": "TWILIO_CLIENT_ID", "TWILIO_AUTH_KEY": "TWILIO_AUTH_KEY", "SECURITY_GROUP1_ID": "SECURITY_GROUP1_ID", "SUBNET1_ID": "SUBNET1_ID", "SUBNET2_ID": "SUBNET2_ID" }
- Run
docker-compose -f docker-compose.dev.yml up -d
- Run migrations
SECRETS=secrets.dev.json serverless invoke local --function migrate
- Run
npm start
to see if your stack is up and working try making the following curl request (or import into postman:
curl -X POST \ http://localhost:3000/dev/subscription \ -H 'Content-Type: application/json' \ -H 'Postman-Token: 162a92b9-cb59-462b-be57-111523a1f41f' \ -H 'cache-control: no-cache' \ -d '{"emailAddressClient":"[email protected]", "countyClient":"MIAMI-DADE", "phoneNumberClient":"7869999999", "driverLicenseIdClient":"A111-111-11-111-0"}'
- Miami-Dade County - has API for driver license
- Broward County - has API but no endpoint for DL status web view at: https://www.browardclerk.org/Clerkwebsite/BCCOC2/Pubsearch/dl_stat_verif.aspx?DRVNUM=
- Orange Country - API abilities not clear, no way to search by DL submitted request to support for additional info
- flhsmv - The most authoritative of the sources, no API, captcha on check: https://services.flhsmv.gov/DLCheck/
- DAVID - includes Vehicle information but https://david.flhsmv.gov/
- Implement pgcrypto for PII - Long Term
- confgiure VPC with static IP address - done
- ADD mutli-az dr for RDS
- add RDS Proxy
- Finalize schema for reports and subscribers
- Complete Landing page
- multi-lingual
- add progress bar
- best proactices
- develop deck for specific user group
- Get out the word campagin (public defender offices)
- User testing
- Feedback
- Define Success Metrics
- Develop graphic 'how to' instruction set for each county supported (similar to plane inflight cards)
- Models + DB
- Call/SMS Subscribe and verify
- Enforce Rate limit
- Allow multiple numbers with individual subscription types
DONE: aws account has 2FA Database exists in VPC within Private subnet Databse enforces SSL via rds.force_ssl paramater t3 instance chosen to ensure data encryption at rest TLS for front end and service connections
TODO: Translate to es/pt/ht Update application user password to use SCRAM-SHA-256 Encryption Access-Control-Allow-Origin policy properly set.