All Projects → freeCodeCamp → outreach-for-good

freeCodeCamp / outreach-for-good

Licence: other
Absenteeism management and tracking application

Programming Languages

javascript
184084 projects - #8 most used programming language
CSS
56736 projects
python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to outreach-for-good

CODE-CAMP-2020
A Virtual Hackathon Camp for Developers, Build real products and win Swags in comfort of your home.
Stars: ✭ 30 (+150%)
Mutual labels:  opensourceforgood
hacktoberfest2021
Add your any type of project related to programming! This is a beginner-friendly repository made specifically for Hacktoberfest that helps you get your first PR. Happy Hacking !!!!!
Stars: ✭ 21 (+75%)
Mutual labels:  opensourceforgood
Nutshell-Machine-Learning
This is a repository built by the community for the community.
Stars: ✭ 77 (+541.67%)
Mutual labels:  opensourceforgood
open-source-for-good-directory
A directory for freeCodeCamp's Open Source for Good apps - solutions for nonprofits
Stars: ✭ 62 (+416.67%)
Mutual labels:  opensourceforgood
Mail For Good
An open source email campaign management tool for nonprofits
Stars: ✭ 3,841 (+31908.33%)
Mutual labels:  opensourceforgood
vly1
v1 Voluntarily application - deprecated
Stars: ✭ 14 (+16.67%)
Mutual labels:  opensourceforgood

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

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].