freeCodeCamp / outreach-for-good

Absenteeism management and tracking application

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Outreach for Good

Student absenteeism and outreach tracking app

Purpose

This application is intended to streamline the process of tracking and reporting student absenteeism for Outreach for Good.

Authentication and Authorization

Google OAuth is used for authentication for using the app. Authenticated users are by default a 'guest'. The admin and super users are able to promote/demote access of other users by assigning roles.

The roles are:

  • guest
  • teacher
  • manager
  • admin
  • super user

Deployment

Vagrant

See tools/vagrant for development environment setup instructions

Heroku

This app contains npm scripts for easy deployment to Heroku.

The env variables that need to be set in server/config/local.env:

  • APP_SECRET = SECRET
  • DOMAIN = SOME HTTPS DOMAIN
  • GOOGLE_ID = GOOGLE ID
  • GOOGLE_SECRET = GOOGLE SECRET
  • NODE_ENV = production
  • SUPER_USER_EMAIL = EMAIL OF SUPER USER

Google id and secret need to be obtained by creating an application on Google Developers Console.

Sample PDFs

See tools/sample-pdfs for example import documents.

To-Do

This version is currently under development.

  • General
    • Integrate bug tracking with Sentry.io
    • When session validation fails, does user stay locked-out?
    • DataTable - improve row selection performance with refs
  • Page - Admin
    • Prevent users from deleting themselves
    • User photo in left-most column
    • Rename 'Settings' tab to something meaningful
    • align settings tab to DataTable style
  • Page - Dashboard
    • deselect rows after performing API Action
    • show summary row as selected when collapsed with selected items
    • ask about confirmation dialogs for API actions
    • button to 'deselect all'
    • color and formatting in dropdown menus
    • count true/false cells for summary rows
  • Page - Records
    • Add title and page frame
    • Look into refactoring the term 'records' into something more meaningful
    • Add tests and improve error detection and handling
    • Ensure schools are referred to by id and not name
  • Page - Reports
    • Verify everything is working
  • Page - Settings
    • Add title and page frame
    • Add a description of the pages purpose
  • Page - Statistics
    • Add title and page frame
    • Indicate that statistics is a work in progress in dev versions
  • Upgrade babel-loader, current version causes depreciation warning (need v7)
  • Server
    • Remove all hard-coded school years
    • does current return all or current year?
    • Integrate bug tracking with Sentry.io

Fix promise-cancel console error Ensure performApiCall queue always flushes allow clicking on student note dates to see more info in a dialog

allow upload to any date when no records exist

About

Absenteeism management and tracking application


Languages

Language:JavaScript 89.7%Language:CSS 6.6%Language:Python 2.3%Language:HTML 1.0%Language:Ruby 0.4%