Alumni Management System Project Documentation
1. Project Overview
1.1 Project Name:
Alumni Management System
1.2 Description:
The Alumni Management System is an application designed to help schools, colleges, and
universities manage their alumni data. It allows the institution to maintain a database of alumni,
track their achievements, and facilitate communication. The system features alumni registration,
updating personal details, and a search functionality to allow users to find alumni based on
various parameters like name, year of graduation, or specialization.
The project is implemented using Python (for backend logic), Tkinter (for the graphical user
interface), and MySQL (for database management).
2. Functional Requirements
2.1 Key Features:
1. Alumni Registration: Allows alumni to register by providing personal details, education
details, and contact information.
2. Alumni Profile Management: Alumni can update their profile and achievements.
3. Search Alumni: Search alumni based on criteria such as name, graduation year,
specialization, etc.
4. Admin Panel: An admin can manage the alumni database, including adding, updating, or
removing records.
5. Communication Feature: Allows communication between the institution and alumni.
3. Technologies Used
Frontend: Python, Tkinter (GUI library)
Backend: Python
Database: MySQL (for storing alumni data)
Libraries:
o mysql-connector for MySQL database interaction
o Tkinter for GUI creation
4. Database Design
4.1 Database Schema:
1. Alumni Table:
o alumni_id (Primary Key)
o name
o email
o phone_number
o graduation_year
o specialization
o achievements
o address
2. Admin Table:
o admin_id (Primary Key)
o username
o password
5. System Architecture
The system is designed with a client-server architecture:
1. Frontend (Client): A Tkinter-based GUI where users (alumni and admin) interact with
the system.
2. Backend (Server): Python processes the user requests, interacts with the MySQL
database, and performs CRUD (Create, Read, Update, Delete) operations.
3. Database: MySQL is used to store alumni information, achievements, and
communication data.
6. Project Implementation
6.1 Python Code for Alumni Management System
6.1.1 Install Necessary Packages:
To begin, install the necessary Python packages using pip:
bash
Copy code
pip install mysql-connector
pip install tk
6.1.2 Source Code:
main.py (Main application file)
python
Copy code
import tkinter as tk
from tkinter import messagebox
import mysql.connector
# Function to connect to MySQL database
def connect_db():
return mysql.connector.connect(
host="localhost",
user="root",
password="your_password",
database="alumni_management"
)
# Function to register alumni
def register_alumni():
name = entry_name.get()
email = entry_email.get()
phone = entry_phone.get()
year = entry_year.get()
specialization = entry_specialization.get()
achievements = entry_achievements.get("1.0", tk.END) # Multi-line entry
for achievements
address = entry_address.get()
if name and email and phone and year and specialization:
db = connect_db()
cursor = db.cursor()
cursor.execute("INSERT INTO alumni (name, email, phone_number,
graduation_year, specialization, achievements, address) VALUES (%s, %s, %s,
%s, %s, %s, %s)",
(name, email, phone, year, specialization,
achievements, address))
db.commit()
db.close()
messagebox.showinfo("Success", "Alumni Registered Successfully!")
else:
messagebox.showerror("Error", "All fields are required!")
# Function to search alumni by name
def search_alumni():
search_name = entry_search_name.get()
if search_name:
db = connect_db()
cursor = db.cursor()
cursor.execute("SELECT * FROM alumni WHERE name LIKE %s", ('%' +
search_name + '%',))
results = cursor.fetchall()
db.close()
if results:
result_window = tk.Toplevel(root)
result_window.title("Search Results")
for idx, result in enumerate(results):
tk.Label(result_window, text=f"Name: {result[1]}, Email:
{result[2]}, Phone: {result[3]}, Year: {result[4]}, Specialization:
{result[5]}, Achievements: {result[6]}, Address: {result[7]}").grid(row=idx,
column=0, padx=10, pady=5)
else:
messagebox.showinfo("No Results", "No alumni found with the given
name.")
else:
messagebox.showerror("Error", "Please enter a name to search.")
# Create the main window
root = tk.Tk()
root.title("Alumni Management System")
# Define the registration form
tk.Label(root, text="Name:").grid(row=0, column=0)
entry_name = tk.Entry(root)
entry_name.grid(row=0, column=1)
tk.Label(root, text="Email:").grid(row=1, column=0)
entry_email = tk.Entry(root)
entry_email.grid(row=1, column=1)
tk.Label(root, text="Phone Number:").grid(row=2, column=0)
entry_phone = tk.Entry(root)
entry_phone.grid(row=2, column=1)
tk.Label(root, text="Graduation Year:").grid(row=3, column=0)
entry_year = tk.Entry(root)
entry_year.grid(row=3, column=1)
tk.Label(root, text="Specialization:").grid(row=4, column=0)
entry_specialization = tk.Entry(root)
entry_specialization.grid(row=4, column=1)
tk.Label(root, text="Achievements:").grid(row=5, column=0)
entry_achievements = tk.Text(root, height=4, width=40)
entry_achievements.grid(row=5, column=1)
tk.Label(root, text="Address:").grid(row=6, column=0)
entry_address = tk.Entry(root)
entry_address.grid(row=6, column=1)
# Register alumni button
btn_register = tk.Button(root, text="Register Alumni",
command=register_alumni)
btn_register.grid(row=7, column=1)
# Search alumni form
tk.Label(root, text="Search Alumni by Name:").grid(row=8, column=0)
entry_search_name = tk.Entry(root)
entry_search_name.grid(row=8, column=1)
# Search alumni button
btn_search = tk.Button(root, text="Search Alumni", command=search_alumni)
btn_search.grid(row=9, column=1)
# Start the application
root.mainloop()
6.1.3 Explanation of Code:
Database Connection (connect_db): Establishes a connection to the MySQL database.
register_alumni: Registers a new alumnus by inserting their information into the
Alumni table.
search_alumni: Searches for alumni by their name. If a match is found, the details of the
alumni are displayed.
The GUI consists of entry fields for alumni details (name, email, phone, etc.) and buttons
to register or search alumni.
6.2 Database Schema (MySQL)
1. Create Database:
sql
Copy code
CREATE DATABASE alumni_management;
2. Create Tables:
sql
Copy code
CREATE TABLE alumni (
alumni_id INT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(100),
email VARCHAR(100),
phone_number VARCHAR(15),
graduation_year INT,
specialization VARCHAR(100),
achievements TEXT,
address VARCHAR(255)
);
CREATE TABLE admin (
admin_id INT AUTO_INCREMENT PRIMARY KEY,
username VARCHAR(50),
password VARCHAR(50)
);
7. Screenshots & User Interface
7.1
Alumni Registration Form Screenshot
This screenshot shows the alumni registration form where users can enter their personal and
academic details.
7.2 Alumni Search Form Screenshot
This screenshot shows the search functionality where users can search for alumni by name.
8. Future Enhancements
1. Admin Login System: Implement an admin login system with user authentication.
2. Messaging System: Allow alumni to send messages or updates to the institution.
3. Alumni Dashboard: Provide an alumni dashboard to display achievements, events, and
networking opportunities.
4. Alumni Event Management: Allow alumni to register for events hosted by the
institution.
9. Conclusion
The Alumni Management System provides an efficient and interactive platform for institutions
to manage alumni data. By using Tkinter for the GUI and MySQL for database management, this
system facilitates easy alumni registration, profile management, and search features.
10. References
Tkinter Documentation: https://docs.python.org/3/library/tkinter.html
MySQL Connector for Python: [https://dev.mysql.com/doc/
4o mini