Skip to content

React web version of ROSTER (Record Of Sea Turtles Electronic Reports) collects marine turtle and holding tank data required by the Florida Fish and Wildlife Conservation Commission (FWC)

License

Notifications You must be signed in to change notification settings

jaypalexa/roster

Repository files navigation

ROSTER (Record Of Sea Turtles Electronic Reports)

ROSTER is a responsive, multi-tenant web application for collecting and reporting on marine turtle and holding tank data required by the Florida Fish and Wildlife Conservation Commission (FWC).


Live Site


Tech Stack


TODO

Item Notes
✓ User Authenication Amazon Cognito
✓ Graphs for Sea Turtle > Morphometrics (temperature, salinity, pH) ??? holding-tank-temperature-graph, etc.
✓ Mapping Leaflet + React Leaflet (article)
Mapbox
✓ Data tables material-table
✓ Filtering (search) of tables material-table
✓ Prompt to save changes if form is dirty and user clicks Edit/Delete or Add button Make Yes/No into Yes/No/Cancel
✓ Add a loading spinner home-grown
✓ Database (multi-tenant) Amazon DynamoDB
Building a Multitenant Storage Model on AWS (PDF)
Best Practices for Designing and Architecting with DynamoDB
✓ Prevent tabbing outside of modal Material-UI
✓ Session / Token timeout AWS Cognito and refresh tokens (JWT)
✓ Material-UI or Ant Design instead of Bulma Material-UI / Ant Design
✓ Counters for items on home screen and tabs Sea Turtles > Tags, etc.
❑ Preventing denial-of-service attacks / excessive usage ??? throttling
❑ Offline mode ??? send updates if any made whilst offline...how to auth? Service worker unable to distinguish different payloads when calling AWS Lambda (https://lambda.us-east-2.amazonaws.com/2015-03-31/functions/roster-api-lambda/invocations)?
❑ Poor man's caching ??? A guide to stale-while-revalidate data fetching with React Hooks
❑ Ability to click/tap to set map marker ??? ???

Reports - PDFs for FWC

Report Notes
✓ Marine Turtle Holding Facility Quarterly Report [ generate | blank ]
✓ Marine Turtle Captive Facility Quarterly Report for Hatchlings [ generate | blank ]
✓ Marine Turtle Captive Facility Quarterly Report for Washbacks [ generate | blank ]
✓ Monitoring for Beach Restoration Projects [ blank ]
✓ Disorientation Incident Form [ blank ]
✓ Disorientation Incident Form Directions [ blank ]
✓ Educational Presentations Using Turtles [ blank ]
✓ Necropsy Report Form [ blank ]
✓ Nighttime Public Hatchling Release [ blank ]
✓ Obstructed Nesting Attempt Form [ blank ]
✓ Obstructed Nesting Attempt Form Directions [ blank ]
✓ Papilloma Documentation Form [ blank ]
✓ Public Turtle Watch Schedule Form [ blank ]
✓ Public Turtle Watch Summary Form [ blank ]
✓ Stranding and Salvage Form [ blank ]
✓ Tag Request Form [ blank ]
✓ Tagging Data Form [ generate | blank ]
✓ Turtle Transfer Form [ blank ]

Reports - Other

Report Notes
✓ Turtle Injury Report [ generate ]
✓ Turtle Tag Report [ generate ]
✓ Hatchlings and Washbacks by County Report [ generate ]

Reports - Online PDF Editor


Available Scripts

In the project directory, you can run:

npm install

Runs the initial installation of npm packages.

npm outdated

Lists npm packages that are not the latest allowable version as per the package.json file.

npm update

Updates npm packages (top-level only) to the latest allowable version as per the package.json file.

npm dedupe

Fixes "blah cannot be used as a JSX component" errors.

npm start

Runs the app in the development mode. Open http://localhost:3000 to view it in the browser.

The page will reload if you make edits. You will also see any lint errors in the console.

npm test

Launches the test runner in the interactive watch mode. See the section about running tests for more information.

npm run build

Builds the app for production to the build folder. It correctly bundles React in production mode and optimizes the build for the best performance. The build is minified and the filenames include the hashes.

You may serve it with a static server; available at http://localhost:5000:

npm install -g serve
serve -s build

More React


Netlify

Free "starter" plan for hosting personal projects, hobby sites, or experiments.

  • 1 team member ($15/add’l user)
  • 1 concurrent build
  • 100GB bandwidth/month
  • 300 build minutes/month
  • Continuous deployment
  • Access to add-ons

Build & deploy > Environment > Environment variables


Amazon Web Services (AWS)

AWS CLI

AWS SDK

Application Architecture

The application architecture uses:

AWS application architecture diagram

Amazon Cognito

To change a user's password and update status

aws cognito-idp admin-set-user-password --profile roster-admin-user --user-pool-id <USER_POOL_ID> --region <REGION> --username <USER_NAME> --password <PASSWORD> --permanent

To update user attributes

aws cognito-idp admin-update-user-attributes --profile roster-admin-user --user-pool-id <USER_POOL_ID> --region <REGION> --username <USER_NAME> --user-attributes Name="custom:CustomAttr1",Value="Purple"

AWS Lambda (.NET Core)

Amazon DynamoDB


Notes

General

Hacks

About

React web version of ROSTER (Record Of Sea Turtles Electronic Reports) collects marine turtle and holding tank data required by the Florida Fish and Wildlife Conservation Commission (FWC)

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages