This document describes a grade management system that was designed and implemented by students at IIT Mandi. It uses SNMP protocol for data access and is divided into four parts - an API built in Python, Net-SNMP, an SNMP server, and a MySQL database. The system is designed with a client-server architecture and allows faculty, students, and teaching assistants to access and manage course and student grade data.
3. 1 PREAMBLE
1 Preamble
1.1 Project Overview
Project aims at providing a Grade management system to Faculty, Students
and Teaching Assistants. This project takes the advantage of SNMP protocol.
The motive behind this project is to understand the Access control provided by
V3 of SNMP and how SNMP can be used to manage data. In addition to these
this project also helped in understanding Application Programing Interface and
how API can be created for building applications.
1.2 Software Overview
The software is divided into 4 parts. They are
1. API
2. Net-SNMP
3. SNMP Server
4. Database
Out of these Net-SNMP has been used as it is. API is written in Python.
Conguration changes were done in SNMP Server and Mysql is used for storing
data which is connected to SNMP Server through Perl.
1.3 Purpose
This document is intended for Developers who want to use this API either to
build an application for grade management, people are looking for a way to use
SNMP for managing their data. It explains the software design and software
architecture.
1.4 Requirements
The software takes leverage of the following softwares:
1. Net-SNMP
2. MySQL
3. Perl
4. Python
The software is divided into 3 block which can function on 3 dierent machines.
They are:
1. Net-SNMP Client
Grade Management System, IIT Mandi 3
4. 3 DESIGN
2. SNMP Server
3. MySQL Server
2 User Interface Specications
This software is an API built over Net-SNMP. API is written in Python and
it provides classes and functions for accessing data over SNMP. Name of the
packege is 'grading'. This package can be congured to access
3 Design
The software is designed as a client-server architecture. There are 3 blocks
which work as client server/clientserver.
3.1 Modular Decomposition
Give the break-up of your software into logical modules, accompanied by a
gure. Show control ow with broken lines, data ow with solid lines.
Grade Management System, IIT Mandi 4
5. 3.2 Implementation 3 DESIGN
3.2 Implementation
Following technologies were used for creating the project
1. Net-SNMP (5.7.1)
2. Python (2.7)
3. Perl ()
4. MySQL (5.5)
Grade Management System, IIT Mandi 5
7. 3.2 Implementation 3 DESIGN
3.2.1 Class and Modules
Class Diagram
3.2.2 OID
Following conventions were used for creating the OIDs.
BaseOid : 1.3.6.1.4.1.8072.9999.9999
1. Courses:
(a) BaseOid.0 List of all courses
(b) BaseOid.0.X Details of a course where X is a course Id
(c) BaseOid.0.X.1 Course Name
(d) BaseOid.0.X.2 List of students enrolled in this course
2. Student:
(a) BaseOid.1 List of all students
(b) BaseOid.1.Y.1Name of course where Y is the student ID.
(c) BaseOid.1.Y.XMarks in course X where Y is student ID.
Grade Management System, IIT Mandi 7
8. 5 REFERENCES
4 Appendix
• grading/
__init__.py : Used for dening folder a package and also for den-
ing important variables
instructor.py : This is the base class for Faculty, Admin, and Ta.
This provides functionality for accessing data.
faculty.py : This denes Faculty class, gives required functionality
admin.py : Denes Admin class for doing administrative tasks like
creating courses, students, faculty, Tas.
ta.py
course.py : Models a course. Can be used for accessing the list of all
the courses and getting their details.
student.py : Models a Student, provides functionality for viewing
grades.
nSnmpClient.py : It acts as an interface between rest of the classes
and Net-SNMP utilities.
5 References
1. manpage snmpvacm, http://docs.oracle.com/cd/E19253-01/816-5166/snmpvacm-
1m/index.html, 10-5-2012
2. man pages, http://www.net-snmp.org/docs/man/, 13-5-2012
3. Subramanian,M., Network Management: Principles and Practice, Ch7.
4. Python documentation, The Python Software Foundation, 14-5-2012.
Grade Management System, IIT Mandi 8