Inside public/uploads, valid user's csv files will be saved. If the name of a csv file exists, the existing file will be overwritten by a new submission.
Session - user session will contain username, password, and their files
CSV file uploading - if a csv file has total less than 100, user will be asked to upload a new csv file
Scale bar, histogram and data table - users can update their csv data live
Table Search - users can serach studentID
In case of errors, error messages will be displayed to users
CSV Format
CSV file must have entries separated by a comma
CSV file must start with headers and have a row beginning with "total"
Note
When applying scaling, students who exceed 100% will be counted towards A+ in spite of their grades over 100%;
csv files will be saved in 'public\uplods' and it will not affect subsequent jobs unless the user reuploads the changed file.
For uploading csv file, I tested with several csv files created by Windows office, text document and professor, all of them were identified to have application/octet-stream as meme types. I couldn't fix this behaviour because it's beyond my comprehensibility. As a solution to this, I askd the user to upload csv file on the uploading page. (Possible bug is any other file type that contains a string in form of 'total,32,12,42,45.66' and so on).
CSV test files can be found in '../public/uplodas'