{"id":18924477,"url":"https://github.com/warmachine028/attendance-analyzer","last_synced_at":"2026-04-19T01:01:54.249Z","repository":{"id":47107705,"uuid":"405708286","full_name":"warmachine028/Attendance-Analyzer","owner":"warmachine028","description":"A Project to convert pdf files to csv using camelot and analyze attendance records of students","archived":false,"fork":false,"pushed_at":"2021-09-15T04:24:00.000Z","size":1067,"stargazers_count":3,"open_issues_count":0,"forks_count":1,"subscribers_count":2,"default_branch":"main","last_synced_at":"2024-12-31T17:38:12.756Z","etag":null,"topics":["analyzer","attendance","cli","matplotlib-pyplot","pandas","python"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsd-2-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/warmachine028.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2021-09-12T17:28:22.000Z","updated_at":"2024-07-02T15:12:35.000Z","dependencies_parsed_at":"2022-08-25T13:00:29.386Z","dependency_job_id":null,"html_url":"https://github.com/warmachine028/Attendance-Analyzer","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/warmachine028%2FAttendance-Analyzer","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/warmachine028%2FAttendance-Analyzer/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/warmachine028%2FAttendance-Analyzer/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/warmachine028%2FAttendance-Analyzer/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/warmachine028","download_url":"https://codeload.github.com/warmachine028/Attendance-Analyzer/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":239921875,"owners_count":19718842,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["analyzer","attendance","cli","matplotlib-pyplot","pandas","python"],"created_at":"2024-11-08T11:06:56.357Z","updated_at":"2026-03-14T03:30:20.713Z","avatar_url":"https://github.com/warmachine028.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"![](previews/attendance_visualizer.jpg)\n\n# [ATTENDANCE ANALYZER]\n\n## Table of Contents\n\n- [Introduction](#introduction)\n- [Getting Started](#getting-started)\n- [Usage](#usage)\n- [Features](#features)\n- [Contributing](#contributing)\n- [License](#license)\n\n## Introduction\n\n- A few weeks back our University released an attendance record pdf like this:\n  ![](previews/pdf_preview.png)\n- Everyone were manually trying to find the student having highest and lowest attendance.\n- So I thought why not automate this and let python do the job for us.\n- I quickly used [camelot] to convert the pdf to csv and used [pandas] to analyse the csv.\n- It wasn't that smooth to convert the pdf to csv. But I somehow figured it out by some trial and errors.\n- I've also added a more features than I initially planned to do and will be adding more onto it.\n\n## Getting Started\n\n### Requirements\n\n- If you want to test the program on your particular PDF, then use camelot to convert your pdf to csv\n\n```shell\n$ pip install camelot\n```\n\n- Otherwise, if you just want to look how the project works, then you'd only require the pandas library\n\n```shell\n$ pip install pandas\n```\n\n### Installation\n\n- This is a CLI project so, it doesn't need an installation. Just Download and run :)\n- I've already added a dummy `PDF` file and its `csv` converted version to the repo for testing.\n- If you want to use you own PDF then convert it to csv using _camelot_ and play around with it.\n\n## Usage\n\n```shell\n$ py main.py\nWelcome to Student Attendance Analyzer\n```\n\n- After this the program will check if the csv file named `student_attendance.csv` exists in data folder.\n- If it doesn't exist, don't worry. It will automatically convert the pdf to csv.\n- \u003cspan style=\"color:red\"\u003e WARNING: \u003c/span\u003eBut Make sure that the csv file has the name \u003ci\u003e student_attendance.csv \u003c/i\u003e\n\n```shell\n 0. Exit\n 1. View All Student Records\n 2. View particular student Record with FULL NAME\n 3. View Student record with maximum % of Attendance\n 4. View Student record with minimum % of Attendance\n 5. View Student records with % of Attendance below 50%\n 6. View Student records with % of Attendance below 20%\n 7. View Attendance Statistics\n 8. Scatter Plot Attendance Records\n 9. Plot Attendance Records Segment wise\n10. Pie Chart Representation\n11. Standard Deviation/Bell Curve of this Record\nEnter your choice:\n```\n\nThis menu will prompt you to choose from the following available features.\n\n## Features\n\n\u003cdetails\u003e\n\u003csummary\u003e 1. Scatter Chart for Summary view of Records \u003c/summary\u003e\nAll Records are grouped with a Coloured which signify the current situation of attendance to simplify \nviewing at a glance. \u003cbr\u003e\u003cbr\u003e\n\n\u003cimg src=\"previews/Figure_1.png\" alt=\"Scatter Plot of Student Records\"\u003e\n\u003c/details\u003e  \n\n\u003cdetails\u003e\n\u003csummary\u003e 2. Bar Chart Quantitative analysis of Students \u003c/summary\u003e\nYou can also Quantitatively visualize how many students fall on each attendance range \u003cbr\u003e\u003cbr\u003e\n\n\u003cimg src=\"previews/Figure_3.png\" alt=\"Bar Plot of Student Records\"\u003e\n\u003c/details\u003e  \n\n\u003cdetails\u003e\n\u003csummary\u003e 3. Pie Chart for Percentage wise analysis of each attendance Range \u003c/summary\u003e\nIf you need get a glance of what percentage of student overall \nform a particular attendance sector then use the pie chart \u003cbr\u003e\u003cbr\u003e\n\n\u003cimg src=\"previews/Figure_2.png\" alt=\"Pie Plot of Student Records\"\u003e\n\u003c/details\u003e  \n\n\u003cdetails\u003e\n\u003csummary\u003e 4. Instant view of student in having max and min attendance \u003c/summary\u003e\n\n\u003cdiv class=\"language-shell highlighter-rouge\"\u003e\u003cdiv class=\"highlight\"\u003e\u003cpre class=\"highlight\"\u003e\u003ccode\u003eEnter your choice: 3  \n\u003cbr\u003e\nStudents having maximum % of Attendance:\nF 34 12020009001102 304202000900103 HENERY TANNER 97.9\n\u003cbr\u003e\nEnter your choice: 4  \n\u003cbr\u003e\nStudent(s) having minimum % of Attendance:\nK 41 12020009001262 304202000900262 LUIS CHARLES 6.5\n\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003c/div\u003e\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003e 5. Sorting students having attendance below 50% and 20% \u003c/summary\u003e\nThis will be helpful to quickly recognize students who are in danger and would need to \nimprove their attendance quickly.\u003cbr\u003e\n\n\u003cdiv class=\"language-shell highlighter-rouge\"\u003e\u003cdiv class=\"highlight\"\u003e\u003cpre class=\"highlight\"\u003e\u003ccode\u003eEnter your choice: 5\n\u003cbr\u003e\nStudents having (% of Attendance \u003c= 50%):\nA 2 12020009028032 304202000900861 ABE GUERRERO 50.0\nA 3 12020009023048 304202000900745 ABEL ROY 32.3\nA 4 12020009022284 304202000901049 ABNER BATES 49.0\n:         :             :           :            :\n:         :             :           :            : \nL 67 12020009001283 304202000900283 WONG VELEZ 39.1\nL 70 12020009023112 304202000900809 WYATT HAMMOND 25.0\n\u003cbr\u003e\nEnter your choice: 6\n\u003cbr\u003e\nStudents in danger zone (% of Attendance \u003c= 20%):\nA 18 12020009022063 304202000900530 CAREY PATTON 12.5\nA 25 12020009022025 304202000900492 EARLY HOOVER 10.4\nA 34 12020009022285 304202000901050 GARFIELD GONZALES 10.4\n:         :             :           :            :\n:         :             :           :            :\nL 64 12020009001224 304202000900224 WINFIELD GRIFFIN 7.6\nL 66 12020009001122 304202000900122 WM BUCHANAN 17.4\n\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003c/div\u003e\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\n\u003csummary\u003e 6. Quick summary of Statistics of the Records \u003c/summary\u003e\n\n\u003cdiv class=\"language-shell highlighter-rouge\"\u003e\u003cdiv class=\"highlight\"\u003e\u003cpre class=\"highlight\"\u003e\u003ccode\u003eEnter your choice: 7\n\u003cbr\u003e\nMinimum % of Attendance is 6.5 \nMaximum % of Attendance is 97.9 \nMean % of Attendance is 67.03 \nMedian % of Attendance is 75.00 \nMode % of Attendance is 75.0 \nVariance of % of Attendance is 497.43 \nStandard Deviation of % of Attendance is 22.30\n\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003c/div\u003e\n\u003c/details\u003e\n\n## Contributing\n\nHere's how we suggest you go about proposing a change to this project:\n\n1. [Fork this project] to your account.\n2. [Create a branch] for the changes that you desire to make.\n3. Commit and Push your changes to your fork\n4. [Send a pull request] from your fork's branch to this `master` branch\n\n## License\n\n- See [LICENSE]\n\n**Pritam, 2021**\n\n\n\u003c!-- Links --\u003e\n\n[license]: https://github.com/warmachine028/Attendance-Analyzer/blob/main/LICENSE\n\n[camelot]: https://camelot-py.readthedocs.io/en/master/index.html\n\n[pandas]: https://pandas.pydata.org/\n\n[Fork this project]: https://docs.github.com/en/get-started/quickstart/fork-a-repo\n\n[Create a branch]: https://help.github.com/articles/creating-and-deleting-branches-within-your-repository\n\n[Send a pull request]: https://help.github.com/articles/using-pull-requests/\n\n[Attendance Analyzer]: https://warmachine028.github.io/Attendance-Analyzer/\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwarmachine028%2Fattendance-analyzer","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fwarmachine028%2Fattendance-analyzer","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwarmachine028%2Fattendance-analyzer/lists"}