Skip to content

mitchwebster/attendo

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

36 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Attend-O

This repository contains all of the source code (with the exception of the database connection configuration) for the back-end and web front-end of the Attend-O automated attendance solution.

##Release Notes Current Release: 0.3

###Software Features

  • Front-facing REST API
  • Courses - retrieves a list of the user's (instructor or student) courses
  • CoursePrompt - takes TSquare Labels and dynamically finds section information while also caching course objects
  • StudentSetup - creates a student in the Attend-O system
  • Check-In - validates a students location/request time for a given class and records their attendance
  • AttendanceData - retrieves all of the attendance records for a given student (Queryable by class)
  • mock/locationData - method for retrieving location (should be replaced by RNOC location API)
  • InstructorSetup - creates an instructor in the Attend-O System
  • Summary - retrieves a summary of the attendance records for a given course
  • CreateRequest - create a change of attendance request
  • ViewRequests - get all of the change of attendance requests for a given user
  • RemoveRequest - delete a given change of attendance request
  • AcceptRequest - accept a change of attendance request
  • Attend-O Web Client
  • Login
  • Student Setup and Dynamic Course Selection
  • Student Course View
  • Student Attendance View, Check-In, and Request Creation
  • Instructor Course View and User Selection
  • Instructor User Attendance Editor
  • Promise-based Utility System
  • Term Selection
  • Object Validation
  • Date/Timezone Operations
  • Course Creation and Storage
  • Course Querying
  • User Querying and Permissions Validation

###Bug Fixes from last release

  • Attendance editor automatically updates in calendar view
  • Course Object Retrieval hits cache before parsing Coursesat.tech
  • Permission Validation for users and instructors
  • Timezone storage issue for attendance records
  • Implemented promise architecture to remove several layered nested callbacks
  • Fixed Date Validation Defect for Check-In
  • Implemented a try-catch system around Tsquare label parsing for error handling
  • Added flexiblity to Tsquare label parsing through additional character lookup

###Know Bugs and Defects

  • Calendar view on web client removes attendance records from view when first loaded and switching months
  • Statistics view is not reactive to changing browser sizes
  • Location Data is not available from RNOC yet, so mock data is being utilized
  • Need for token-based authentication system to validate requests and the information they query
  • Need for CAS login and authentication for web-client

##Install Guide ###Prerequisites

###Dependent Libraries (See package.json)

  • Node Standard Libraries:
  • Async
  • Body-Parser
  • Mongodb
  • Request
  • Time
  • Promise

###Download, Setup, and Run Instructions

  • Developers
  • Clone this repository
  • Open a command window and navigate to the main folder (containing server.js), then run "npm install"
  • Now run "node server", and the server will exist on localhost:8080
  • Users
  • This project currently runs on a private IP while it is currently still in development (please email: mitchell.a.webster@gmail.com for more information)

###Troubleshooting

  • Installation Issues
  • Ensure that both npm and nodeJS are properly installed on your machine
  • Try running "npm install" with administrative priveledges
  • Running "node server" yields a MongoDB exception and none of the requests are working properly...
  • This is most likely because you do not have a copy of the database configuration file, please send an email to the address stated above.
  • How do I know if the server is running
  • The command window hanging after "node server" is a good first indication
  • Then open a browser and type: localhost:8080/api/mock/locationData , this should return a mock location string, if you get this then the application is working properly
  • How do I find the web client
  • Open a browser and type localhost:8080, the angular module should direct your browser to the login screen if the server is running

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published