The objective of this project is to create a comprehensive and visually appealing class timetable for students based on their roll numbers. The project involves reading timetable data from various sources, combining this data into a single timetable, and then visualizing the timetable using a tabular format.
- Roll Number-Based Timetable Generation: Generate personalized timetables for students based on their roll numbers.
- Data Integration: Combine core and elective class data into a single, unified timetable.
- Error Handling: Ensure accurate data processing and handling of missing or incorrect data entries.
- Visual Representation: Present the timetable in a clean and easy-to-read tabular format using Plotly.
- Export as Image: Save the generated timetable as a JPG image for further use or sharing.
- Streamlit Integration: Share and visualize the timetable through a web application using Streamlit.
- Streamlit Cloud Hosting: Host the web application on Streamlit Cloud for easy access and sharing.
- Pandas: For data manipulation and analysis.
- Plotly: For visualizing the timetable in a tabular format.
- NumPy: For numerical operations and managing data arrays.
- Streamlit: For building and hosting the web application.
- data: Contains the CSV files with section, core, and elective timetable data.
- scripts: Contains the main Python script for generating and visualizing the timetable.
- output: Directory where the generated timetable images and CSV files are saved.
- SECTION.csv: Contains the mapping of roll numbers to core and elective sections.
- Elective_TIME_TABLE.csv: Contains the timetable data for elective subjects.
- CORE_TIME_TABLE_2-Sheet1.csv: Contains the timetable data for core subjects.
- Load Data: The data is read from the provided CSV files using Pandas.
- Normalize Data: The roll numbers are normalized to ensure consistency and to remove any leading/trailing spaces.
- Generate Timetable:
- Extract the relevant sections for the given roll number.
- Retrieve the timetable data for core and elective subjects.
- Combine the data into a single timetable.
- Visualize Timetable: The timetable is displayed in a tabular format using Plotly for clear and easy interpretation.
- Export Timetable: The generated timetable is saved as a JPG image for easy sharing and future reference.
- Streamlit Integration: The timetable is shared through a Streamlit web application for easy access.
- Streamlit Cloud Hosting: The web application is hosted on Streamlit Cloud for seamless sharing and accessibility.
- Run the Script: Execute the main Python script
generate_timetable.py. - Enter Roll Number: When prompted, enter the student's roll number.
- View Timetable: The timetable will be displayed in the console and visualized using Plotly.
- Save Timetable: The timetable will be saved as a JPG image in the
outputdirectory. - Access the Web Application: The timetable can be viewed and interacted with through the Streamlit web application.
- Streamlit Cloud Hosting: The web application is hosted on Streamlit Cloud, making it easily accessible through a web browser.
- Create a Streamlit Account: Sign up for a free account on Streamlit Cloud at streamlit.io.
- Deploy the App: Deploy the Streamlit app by linking your GitHub repository containing the project files.
- Share the App: Once deployed, share the app URL with users to allow them to access and interact with the timetable.
This project provides an efficient and user-friendly way to generate, visualize, and share personalized class timetables for students, ensuring they have easy access to their schedule in a clear and organized format through both local and web-based platforms.