#### Video Demo: <https://youtu.be/m8qcIzR_kCo>
For my final project in CS50P, I have chosen to create a Gradebook Generator. This project embodies the essence of what I believe to be an invaluable tool for students who wish to easily visualize their grades and track their academic progress over time. The Gradebook Generator provides a highly efficient and user-friendly solution for creating and maintaining a spreadsheet that keeps tabs on one's grades throughout high school or university.
The core functionality of my program is designed with simplicity and accessibility in mind. The user interface walks students through a series of prompts, guiding them to input their academic data as requested by the program. This design ensures that even users with minimal technical knowledge can navigate and use the Gradebook Generator with ease.
Once the user has inputted their data, my program leverages the power of the 'prettytable' functionality to generate a visually appealing and organized Gradebook. This Gradebook not only displays the students' grades for each course but also calculates their average grades per semester and per year. This feature allows students to get a comprehensive overview of their academic performance at a glance, making it easier for them to identify areas where they excel and areas where they might need improvement.
In addition to generating a visual Gradebook, my program also creates a CSV (comma-separated values) file named 'gradebook.csv'. This file can be easily downloaded and imported into popular spreadsheet applications such as Microsoft Excel or Google Sheets. The CSV file format ensures compatibility across different platforms, allowing users to further manipulate and analyze their data if they wish. By providing this feature, my program extends its utility beyond just grade visualization, offering users the flexibility to create a comprehensive and customizable academic record.
Furthermore, the Gradebook Generator includes a feature that generates a bar graph saved as 'avg_comparison.png' using the matplotlib library. This graph provides a visual comparison of the user's academic performance over the years. By presenting the data in a graphical format, students can more easily discern trends in their academic performance, such as improvements or declines in their grades over time. This visual representation adds an extra layer of insight, helping students to better understand their academic journey.
One of the standout aspects of my project is its user-centric design. The program's prompts are clear and concise, ensuring that users are never left confused about what data they need to input. Additionally, the use of the 'prettytable' functionality ensures that the generated Gradebook is not only informative but also aesthetically pleasing. This attention to detail enhances the overall user experience, making the Gradebook Generator a tool that students will find both practical and enjoyable to use.
In summary, my final project for CS50P, the Gradebook Generator, is a comprehensive tool designed to help students visualize and track their academic progress. By providing a user-friendly interface, generating organized and visually appealing Gradebooks, and offering additional features such as CSV file export and graphical performance comparisons, my program addresses the needs of students who seek an efficient and effective way to manage their grades. I am confident that this project will prove to be a valuable resource for students and contribute positively to their academic experience. Thank you!