0% found this document useful (0 votes)
58 views8 pages

Smart Campus Assistant Tool Overview

The Smart Campus Assistant is a Python-based tool designed to automate attendance tracking, timetable management, and digital resource organization in educational institutions. It features attendance management, timetable creation, resource tracking, and data visualization using matplotlib, aligning with SDG 4 and SDG 9. The tool aims to enhance digital innovation and efficiency in educational settings by providing a user-friendly interface and data persistence capabilities.

Uploaded by

aj6550912
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
58 views8 pages

Smart Campus Assistant Tool Overview

The Smart Campus Assistant is a Python-based tool designed to automate attendance tracking, timetable management, and digital resource organization in educational institutions. It features attendance management, timetable creation, resource tracking, and data visualization using matplotlib, aligning with SDG 4 and SDG 9. The tool aims to enhance digital innovation and efficiency in educational settings by providing a user-friendly interface and data persistence capabilities.

Uploaded by

aj6550912
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd

Smart Campus Assistant

Digital Education | Attendance | Visualization

Submitted by: Anubhav Jain


Institute: VIT

Aligned with SDG 4 (Quality Education) & SDG 9 (Industry, Innovation & Infrastructure).

Generated on: 2025-11-08 [Link]


Problem Statement

Educational institutions often face challenges in efficiently tracking attendance, managing timetables, and
organizing digital resources. The Smart Campus Assistant is a modular Python-based tool that automates
these tasks, integrates data visualization using matplotlib, and promotes digital innovation in education.

Key Features
- Attendance management with date-based tracking
- Timetable creation and display
- Resource tracker for e-books, slides, and videos
- JSON-based data persistence for export/import
- Live attendance graph visualization using matplotlib

Sample Input / Output (Console)


> Choose an option: 1
Course code: CS101
Date: 2025-11-08
Enter student IDs: S001, S002, S003
Recorded 3 students for CS101 on 2025-11-08.

> Choose an option: 3


Enter course code: CS101
[Displays live bar chart of Attendance Trend for CS101]

Attendance Trend Graph (CS101)


Below is a real bar chart generated from sample data using matplotlib:
Appendix: Full Source Code

#!/usr/bin/env python3
"""
Smart Campus Assistant
Menu-driven Python CLI for attendance tracking, timetable management,
digital resource tracking, and graph visualization.
Author: Anubhav Jain, VIT
"""

import json
import [Link] as plt
from datetime import datetime
from collections import defaultdict

DATA_FILE = "smart_campus_data.json"

# Module 1: Data Persistence


def load_data(file_path=DATA_FILE):
try:
with open(file_path, "r") as f:
return [Link](f)
except FileNotFoundError:
return {"attendance": {}, "timetable": {}, "resources": []}

def save_data(data, file_path=DATA_FILE):


with open(file_path, "w") as f:
[Link](data, f, indent=2)

# Module 2: Attendance Management


def record_attendance(data):
course = input("Course code (e.g. CS101): ").strip().upper()
date = input("Date (YYYY-MM-DD) [press enter for today]: ").strip()
if not date:
date = [Link]().strftime("%Y-%m-%d")
students = input("Enter student IDs present (comma separated): ").strip()
present_list = [[Link]() for s in [Link](",") if [Link]()]
[Link]("attendance", {}).setdefault(course, {})[date] = present_list
save_data(data)
print("Recorded {} students for {} on {}.".format(len(present_list), course, date))

def view_attendance(data):
course = input("Course code (or leave blank to view all): ").strip().upper()
if course:
course_data = [Link]("attendance", {}).get(course, {})
if not course_data:
print("No attendance recorded for that course.")
return
for date, students in sorted(course_data.items()):
print("{}: {} present -> {}".format(date, len(students), ", ".join(students)))
else:
for c, cdata in [Link]("attendance", {}).items():
print("\\nCourse: {}".format(c))
for date, students in sorted([Link]()):
print(" {}: {} present".format(date, len(students)))

# Module 3: Attendance Graph Visualization


def show_attendance_graph(data):
course = input("Enter course code to visualize (e.g. CS101): ").strip().upper()
course_data = [Link]("attendance", {}).get(course, {})
if not course_data:
print("No attendance data available for that course.")
return
dates = sorted(course_data.keys())
counts = [len(course_data[d]) for d in dates]
[Link](figsize=(8,5))
[Link](dates, counts, color="dodgerblue", edgecolor="navy")
[Link]("Date")
[Link]("Number of Students Present")
[Link]("Attendance Trend for {}".format(course))
[Link](rotation=45)
plt.tight_layout()
[Link]()

# Module 4: Timetable Management


def add_timetable_slot(data):
day = input("Day (Mon/Tue/Wed/Thu/Fri): ").strip().title()
time = input("Time (e.g. 09:00-10:00): ").strip()
course = input("Course code: ").strip().upper()
[Link]("timetable", {}).setdefault(day, {})[time] = course
save_data(data)
print("Saved slot {} {} -> {}.".format(day, time, course))

def view_timetable(data):
tt = [Link]("timetable", {})
if not tt:
print("Timetable is empty.")
return
days = ["Mon", "Tue", "Wed", "Thu", "Fri"]
for d in days:
print("\\n{}:".format(d))
slots = [Link](d, {})
if not slots:
print(" (no slots)")
continue
for time, course in sorted([Link]()):
print(" {} -> {}".format(time, course))

# Module 5: Digital Resource Tracking


def add_resource(data):
title = input("Resource title: ").strip()
course = input("Course code: ").strip().upper()
link = input("Link (URL or file path): ").strip()
notes = input("Notes (optional): ").strip()
entry = {"title": title, "course": course, "link": link, "notes": notes, "added":
[Link]().strftime("%Y-%m-%d")}
[Link]("resources", []).append(entry)
save_data(data)
print("Resource added successfully!")

def search_resources(data):
q = input("Enter course code or keyword: ").strip().lower()
results = []
for r in [Link]("resources", []):
if (q in r["course"].lower() or q in r["title"].lower() or q in [Link]("notes",
"").lower()):
[Link](r)
if not results:
print("No matching resources found.")
return
for i, r in enumerate(results, 1):
print("{}. {} ({}) - {} - {}".format(i, r['title'], r['course'], r['link'],
[Link]('notes','')))

# Module 6: Import / Export Utilities


def export_data(data):
filename = input("Enter export filename (default: campus_export.json): ").strip() or
"campus_export.json"
save_data(data, filename)
print("Data exported successfully to {}".format(filename))

def import_data(data):
filename = input("Enter filename to import: ").strip()
try:
with open(filename, "r") as f:
imported = [Link](f)
[Link](imported)
save_data(data)
print("Data imported successfully.")
except Exception as e:
print("Error importing file: {}".format(e))

# Menu Interface
def interactive_menu():
data = load_data()
menu = {
"1": ("Record attendance", lambda: record_attendance(data)),
"2": ("View attendance", lambda: view_attendance(data)),
"3": ("Show attendance graph", lambda: show_attendance_graph(data)),
"4": ("Add timetable slot", lambda: add_timetable_slot(data)),
"5": ("View timetable", lambda: view_timetable(data)),
"6": ("Add digital resource", lambda: add_resource(data)),
"7": ("Search resources", lambda: search_resources(data)),
"8": ("Export data", lambda: export_data(data)),
"9": ("Import data", lambda: import_data(data)),
"10": ("Quit", None)
}
while True:
print("\\n====== Smart Campus Assistant ======")
for key, (desc, _) in [Link]():
print("{}. {}".format(key, desc))
choice = input("Select an option (1-10): ").strip()
if choice == "10":
print("Exiting Smart Campus Assistant. Goodbye!")
break
if choice in menu:
menu[choice][1]()
else:
print("Invalid choice. Try again.")

if __name__ == "__main__":
interactive_menu()
SDG Impact & Conclusion
- SDG 4: Quality Education - Promotes digital tools for inclusive learning.
- SDG 9: Industry, Innovation & Infrastructure - Encourages digital automation in campuses.

Conclusion: The Smart Campus Assistant merges automation and analytics in education, supporting
sustainable and data-driven campus management.
Smart Campus Assistant | Anubhav Jain, VIT | Code for Good - Round 2

Common questions

Powered by AI

The potential benefits for students include improved access to digital resources and clearer visibility of attendance trends through visualizations. For faculty, it offers streamlined management of attendance and timetables and efficient tracking of educational resources. However, limitations might include the need for user training and the reliance on digital literacy to fully utilize the system's features. Technical issues or data inaccuracies could also affect its reliability .

The Smart Campus Assistant aligns with SDG 4, Quality Education, by promoting digital tools that facilitate inclusive learning through automation and analytics in education. It supports educational institutions in managing tasks efficiently with features like attendance tracking and timetable management. It also aligns with SDG 9, Industry, Innovation & Infrastructure, by encouraging digital automation on campuses, thereby supporting sustainable and data-driven campus management .

The key challenges include inefficient tracking of attendance, difficulty in managing timetables, and disorganized digital resource handling. The Smart Campus Assistant addresses these by automating attendance recording and visualization, offering a structured timetable management interface, and enabling efficient addition and retrieval of digital resources, thus streamlining operational processes and improving administration efficiency .

The Smart Campus Assistant aids educators in timetable management by allowing them to add or view timetable slots. It organizes slots based on days and times, associating specific courses with each slot. This functionality streamlines the process of timetable creation and ensures clarity and organization in scheduling courses, making it easier for educators to manage their teaching schedules efficiently .

Using matplotlib for data visualization provides educational administrators with clear, real-time graphical insights into attendance trends, facilitating data-driven decision-making. The visual representations help in quickly grasping complex data patterns that might be missed in raw data form, thereby enabling administrators to make informed decisions about scheduling, resource allocation, and identifying areas needing improvement. However, it may require some level of technical competency to interpret these visualizations effectively .

The core features include attendance management with date-based tracking, timetable creation and display, resource tracking for digital materials, JSON-based data persistence, and live attendance graph visualization using matplotlib. These features improve educational management by simplifying the processes of recording and visualizing attendance, maintaining organized timetables, and managing educational resources efficiently .

The Smart Campus Assistant offers flexibility in managing digital resources by allowing users to add resources with details such as title, course code, and link. It also supports note additions and logs the date when resources are added. A search function enables efficient retrieval of resources by keyword or course code, enhancing the accessibility and organization of educational materials .

The Smart Campus Assistant uses JSON-based data persistence, allowing both import and export of data to and from a file. This mechanism ensures that all data such as attendance records, timetable slots, and digital resources are stored efficiently and can be retrieved or updated as needed. It facilitates functionality by maintaining data consistency and allowing seamless transfer and backup of educational data .

The Smart Campus Assistant enhances understanding of attendance trends by providing live bar chart visualizations of attendance data using matplotlib. Users can view graphical representations of student attendance for particular courses over time, which aids in quickly identifying patterns and trends in attendance .

The modular design of the Smart Campus Assistant allows for flexible integration of various functions such as attendance tracking, timetable management, and resource tracking. This structure enhances adaptability by enabling easy updates and expansions with additional modules without disrupting existing functionalities. It also supports scalability by allowing the addition of new features or enhancements as institutional needs evolve or technology advances .

You might also like