0% found this document useful (0 votes)
8 views4 pages

Recruitment System

The document is a Python script that implements a recruitment system using Tkinter for the GUI and SQLite for database management. It includes functionalities for user registration, login, candidate registration, and viewing registered candidates. The script initializes the database, creates necessary tables, and provides a user interface for interaction.

Uploaded by

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

Recruitment System

The document is a Python script that implements a recruitment system using Tkinter for the GUI and SQLite for database management. It includes functionalities for user registration, login, candidate registration, and viewing registered candidates. The script initializes the database, creates necessary tables, and provides a user interface for interaction.

Uploaded by

Shiva kannan
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
You are on page 1/ 4

import tkinter as tk

from tkinter import messagebox


import sqlite3

# Initialize both databases


def init_db():
conn = sqlite3.connect('recruitment_system.db')
c = conn.cursor()
# Users table
c.execute('''
CREATE TABLE IF NOT EXISTS Users (
user_id INTEGER PRIMARY KEY AUTOINCREMENT,
username TEXT UNIQUE NOT NULL,
password TEXT NOT NULL
)
''')
# Candidates table
c.execute('''
CREATE TABLE IF NOT EXISTS Candidates (
candidate_id INTEGER PRIMARY KEY AUTOINCREMENT,
name TEXT NOT NULL,
email TEXT NOT NULL UNIQUE,
skills TEXT,
experience INTEGER
)
''')
conn.commit()
conn.close()

# Register user
def register_user():
username = entry_username.get()
password = entry_password.get()

if username and password:


try:
conn = sqlite3.connect('recruitment_system.db')
c = conn.cursor()
c.execute("INSERT INTO Users (username, password) VALUES (?, ?)",
(username, password))
conn.commit()
conn.close()
messagebox.showinfo("Success", "User registered successfully!")
except sqlite3.IntegrityError:
messagebox.showerror("Error", "Username already exists.")
else:
messagebox.showwarning("Input Error", "All fields are required.")

# Login user
def login_user():
username = entry_username.get()
password = entry_password.get()

conn = sqlite3.connect('recruitment_system.db')
c = conn.cursor()
c.execute("SELECT * FROM Users WHERE username = ? AND password = ?", (username,
password))
result = c.fetchone()
conn.close()
if result:
messagebox.showinfo("Login Success", f"Welcome {username}!")
login_root.destroy()
launch_recruitment_app()
else:
messagebox.showerror("Login Failed", "Invalid username or password.")

# Register candidate
def register_candidate():
name = entry_name.get()
email = entry_email.get()
skills = entry_skills.get()
experience = entry_experience.get()

if name and email and skills and experience:


try:
conn = sqlite3.connect('recruitment_system.db')
c = conn.cursor()
c.execute("INSERT INTO Candidates (name, email, skills, experience)
VALUES (?, ?, ?, ?)",
(name, email, skills, int(experience)))
conn.commit()
conn.close()
messagebox.showinfo("Success", "Candidate registered!")
entry_name.delete(0, tk.END)
entry_email.delete(0, tk.END)
entry_skills.delete(0, tk.END)
entry_experience.delete(0, tk.END)
except sqlite3.IntegrityError:
messagebox.showerror("Error", "Email already registered.")
except ValueError:
messagebox.showerror("Error", "Experience must be a number.")
else:
messagebox.showwarning("Input Error", "Please fill in all fields.")

# View candidates
def show_candidates():
conn = sqlite3.connect('recruitment_system.db')
c = conn.cursor()
c.execute("SELECT * FROM Candidates")
rows = c.fetchall()
conn.close()

if rows:
details = "\n".join([f"{row[0]}. {row[1]} | {row[2]} | {row[3]} | {row[4]}
yrs" for row in rows])
messagebox.showinfo("Registered Candidates", details)
else:
messagebox.showinfo("No Records", "No candidates found.")

# Launch recruitment app window after login


def launch_recruitment_app():
app = tk.Tk()
app.title("Recruitment System")
app.geometry("450x400")
app.configure(bg="#f0f4f8")

frame = tk.Frame(app, bg="white", bd=2, relief="groove")


frame.place(relx=0.5, rely=0.5, anchor="center", width=360, height=340)

tk.Label(frame, text="Candidate Registration", font=("Helvetica", 14, "bold"),


bg="white", fg="#333").pack(pady=10)

tk.Label(frame, text="Name", bg="white", anchor="w").pack(fill="x", padx=20)


global entry_name
entry_name = tk.Entry(frame, font=("Helvetica", 10))
entry_name.pack(padx=20, pady=5, fill="x")

tk.Label(frame, text="Email", bg="white", anchor="w").pack(fill="x", padx=20)


global entry_email
entry_email = tk.Entry(frame, font=("Helvetica", 10))
entry_email.pack(padx=20, pady=5, fill="x")

tk.Label(frame, text="Skills", bg="white", anchor="w").pack(fill="x", padx=20)


global entry_skills
entry_skills = tk.Entry(frame, font=("Helvetica", 10))
entry_skills.pack(padx=20, pady=5, fill="x")

tk.Label(frame, text="Experience (yrs)", bg="white", anchor="w").pack(fill="x",


padx=20)
global entry_experience
entry_experience = tk.Entry(frame, font=("Helvetica", 10))
entry_experience.pack(padx=20, pady=5, fill="x")

btn_frame = tk.Frame(frame, bg="white")


btn_frame.pack(pady=15)

tk.Button(btn_frame, text="Register", command=register_candidate, bg="#4CAF50",


fg="white", width=12).pack(side="left", padx=5)
tk.Button(btn_frame, text="View All", command=show_candidates, bg="#2196F3",
fg="white", width=12).pack(side="left", padx=5)

app.mainloop()

# Initialize database
init_db()

# Setup Login UI
login_root = tk.Tk()
login_root.title("Login / Register")
login_root.geometry("400x300")
login_root.configure(bg="#f0f4f8")

frame = tk.Frame(login_root, bg="white", bd=2, relief="groove")


frame.place(relx=0.5, rely=0.5, anchor="center", width=300, height=220)

tk.Label(frame, text="Recruitment Login", font=("Helvetica", 14, "bold"),


bg="white", fg="#333").pack(pady=10)

tk.Label(frame, text="Username", bg="white").pack()


entry_username = tk.Entry(frame)
entry_username.pack(pady=5, ipady=2, ipadx=5)

tk.Label(frame, text="Password", bg="white").pack()


entry_password = tk.Entry(frame, show='*')
entry_password.pack(pady=5, ipady=2, ipadx=5)
btn_frame = tk.Frame(frame, bg="white")
btn_frame.pack(pady=10)

tk.Button(btn_frame, text="Login", command=login_user, bg="#4CAF50", fg="white",


width=10).pack(side="left", padx=5)
tk.Button(btn_frame, text="Register", command=register_user, bg="#2196F3",
fg="white", width=10).pack(side="left", padx=5)

login_root.mainloop()

You might also like