[go: up one dir, main page]

0% found this document useful (0 votes)
11 views12 pages

PWP With Dates

Group 42 from Pimpri Chinchwad Polytechnic is working on a micro-project titled 'Chat GUI using Python' for the academic year 2024-25, under the guidance of Mrs. Namrata Suryawanshi. The project aims to develop a real-time chat application with a graphical user interface, utilizing Python's socket, threading, and Tkinter libraries, while providing hands-on experience in network programming and GUI design. The team consists of four members: Janhavi More, Sagar Jadhav, Vaishnavi Matkar, and Om Swami, who will follow a structured action plan for project completion.

Uploaded by

Janhavi More
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)
11 views12 pages

PWP With Dates

Group 42 from Pimpri Chinchwad Polytechnic is working on a micro-project titled 'Chat GUI using Python' for the academic year 2024-25, under the guidance of Mrs. Namrata Suryawanshi. The project aims to develop a real-time chat application with a graphical user interface, utilizing Python's socket, threading, and Tkinter libraries, while providing hands-on experience in network programming and GUI design. The team consists of four members: Janhavi More, Sagar Jadhav, Vaishnavi Matkar, and Om Swami, who will follow a structured action plan for project completion.

Uploaded by

Janhavi More
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
You are on page 1/ 12

Group 42 Roll no 198,201,205,210

Micro-Project
Academic Year 2024-25
o Course name: Computer Engineering
o Title of Microproject: Chat GUI using Python
o Course Code: 22616
o Course Co-ordinator: Mrs. Namrata Suryawanshi

Department of Computer Engineering, Pc Polytechnic


Group 42 Roll no 198,201,205,210

Pimpri Chinchwad Education Trust’s CO-R-46


Pimpri Chinchwad Polytechnic
Computer Department Revision Date:
(NBA Accredited and ISO 9001:2015Certified Department) / /2023
Academic Year: 2024-25 Page:02/11

Microproject Report
Part A Part B
Name of Program: Diploma in Computer Engineering

Semester: 6th (Sixth)

Name of Subject and Code: Programming with Python(22616)

Name of the topic: Chat GUI using Python

Name of Team Members: Janhavi More

Sagar Jadhav

Vaishnavi Matkar

Om Swami

Name and Sign of Project guide:

Sign: Mrs. Namrata Suryawanshi

Department of Computer Engineering, Pc Polytechnic


Group 42 Roll no 198,201,205,210

Maharashtra State
Board of Technical Education, Mumbai
(Autonomous) (ISO-9001-2008) (ISO/IEC 27001:2013)

CERTIFICATE
This is to certify that Mr/Mrs. 210-Janhavi More, 198-Vaishnavi Matkar, 201-Om Swami,
205-Sagar Jadhav of Diploma in Computer Engineering of Pimpri-Chinchwad Polytechnic
has completed Micro projects of the course Programming with Python (22616) as
prescribed in the curriculum for the academic year 2024-25.

Place: Akurdi
Date:

Course In charge Head of Department


Mrs. Namrata Suryawanshi Prof. M.S. Malkar

Seal of institute

Department of Computer Engineering, Pc Polytechnic


Group 42 Roll no 198,201,205,210

PART-A
Micro Project Proposal

 Title: Chat GUI using Python

 Aims/benefits of the micro-project:


Aim:- To develop a chat application with a graphical user interface (GUI) using Python,
enabling real-time communication between multiple clients.
Benefits:-.
 Provides hands-on experience in network programming and GUI design using Python.
 Helps students understand client-server communication and threading concepts.
 Encourages efficient message handling and user-friendly interface design.

 Description:
This project involves developing a chat application using Python's socket and threading
libraries for server-client communication and the Tkinter library for the GUI. The server
manages multiple clients, while the client-side interface allows users to send and receive
messages in real-time. The application supports personalized greetings and efficient
message broadcasting.

 Course Outcomes Addressed:


 Gain practical experience in developing network-based applications using Python.
 Understand the design and development of real-time communication systems.
 Enhance programming skills in socket programming and GUI development.

 Proposed methodology:
 Design and implement a server using the socket and threading libraries to handle
multiple clients.
 Develop a Tkinter-based GUI for the client-side application to send and receive
messages.
 Implement message broadcasting and personalized responses.
 Test the application for robustness in multi-client scenarios.

Department of Computer Engineering, Pc Polytechnic


Group 42 Roll no 198,201,205,210

 Action Plan:
SR. DETAILS OF PLANNED PLANNED NAME OF
NO ACTIVITY START FINISHED RESPONSIBLE
DATE DATE TEAM MEMBER
1. Topic given by subject 1/1/25 8/1/25
teacher and discussed Janhavi More
with given members.

2. Design of project 8/1/25 15/1/25


3. Planning of project 15/1/25 22/1/25
4. Distribution of task and 22/1/25 29/1/25
discussion of role and Vaishnavi Matkar
responsibilities of each
other

5. Collection of information 29/1/25 5/2/25


related to the topic
6. Analysed the collected 5/2/25 12/2/25 Sagar Jadhav
data and finalise
structure of the project
7. Report preparation 12/2/25 5/3/25 Om Swami
8. Implementation 5/3/25 12/3/25

 Actual resources required:


Sr.no Name of the Specification Remarks
resources
1) Computer System OS: Windows 10, RAM:8GB Used
2) Software PyCharm Community Edition Used
3) Website www.tutorialspoint.com Used

 List of team members:


Roll No. Enrollment no. Name
198 23211000323 Vaishnavi Matkar
201 23211000327 Om Swami
205 23211000335 Sagar Jadhav
210 23211000340 Janhavi More

Sign: Mrs. Namrata Suryawanshi

Department of Computer Engineering, Pc Polytechnic


Group 42 Roll no 198,201,205,210

PART-B
Micro Project Proposal
 Introduction: This project explores the development of a Chat GUI using Python,
emphasizing real-time communication and user-friendly interface design. It demonstrates
the integration of socket programming and GUI development using Tkinter.
 Aims/benefits of the micro-project:
Aim:- To develop a real-time chat application with a GUI using Python's socket,
threading, and Tkinter libraries.

Benefits:-

 Provides real-world experience in building communication systems.


 Enhances problem-solving skills by handling multi-client scenarios and message
broadcasting.
 Strengthens understanding of Python programming concepts.

 Intended Course Outcomes:


 Develop Python-based network applications.
 Apply concepts of socket programming and threading.
 Create intuitive GUIs using Tkinter.

 Actual methodology followed:


 Group discussion on the project topic and objectives.
 Task distribution and role assignment among team members.
 Designing and planning the project structure.
 Collection and analysis of information on socket programming and Tkinter.
 Coding the server and client applications.
 Testing the application for multi-client communication.
 Preparing the project report and presentation.

 Literature Review:
Previous studies and projects have highlighted the importance of real-time communication
systems in various applications. Python's socket and Tkinter libraries have been widely used
for developing such systems due to their simplicity and efficiency. This project builds on
these concepts, incorporating multi-threading for handling concurrent clients and a user-
friendly GUI for an enhanced chat experience.
 Actual resources Used:
Sr.no Name of the resources Specification Remarks
1. Computer System OS: Windows 10, RAM:8GB Used
2. Software PyCharm Community Edition Used
3. Website www.tutorialspoint.com Used

Department of Computer Engineering, Pc Polytechnic


Group 42 Roll no 198,201,205,210

 Skills developed learning outcomes of this micro project:


Sr.no Skills Remarks
1. Information collection 
2. Information analysis 
3. Design of project 
4. Programming skills 
5. Leadership 
6. Team management 
7. Planning 
8. Critical thinking 
9. Task management 
10. Creativity 
11. Develop project in deadline driven environment 
12. Familiar with subject knowledge 

 Program Code:

Server.py
import socket
import threading
class ChatServer:

def __init__(self):
self.host = "127.0.0.1" # Localhost
self.port = 5555
self.server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
self.server_socket.bind((self.host, self.port))
self.server_socket.listen(5)
print("Server started. Waiting for connections...")
self.clients = []
def broadcast(self, message, sender_socket):

for client in self.clients:


if client != sender_socket: # Don't send the message back to the sender
client.send(message)
def handle_client(self, client_socket):
while True:

try:

Department of Computer Engineering, Pc Polytechnic


Group 42 Roll no 198,201,205,210

message = client_socket.recv(1024).decode("utf-8")
print(f"Received: {message}")
if message.lower().startswith("hello, i am"):

name = message[10:].strip() # Extract the name after "Hello, I am"


response = f"Hello {name}, have a good day!!"
client_socket.send(response.encode("utf-8"))
else:

self.broadcast(message.encode("utf-8"), client_socket)
except ConnectionResetError:
print("Client disconnected.")
self.clients.remove(client_socket)
client_socket.close()

break
def run(self):
while True:
client_socket, client_address = self.server_socket.accept()

print(f"Connection from {client_address}")


self.clients.append(client_socket)
threading.Thread(target=self.handle_client, args=(client_socket,)).start()
if __name__ == "__main__":
server = ChatServer()

server.run()

Department of Computer Engineering, Pc Polytechnic


Group 42 Roll no 198,201,205,210

client-gui.py
import socket
import threading

from tkinter import Tk, Text, Scrollbar, Entry, Button, Label, Frame, END, RIGHT, Y, DISABLED,
NORMAL
class ChatClient:
def __init__(self, root):
self.root = root
self.root.title("Chat Application")
self.root.geometry("500x600")
self.root.configure(bg="#2C3E50")
self.header = Label(root, text="Welcome to the Chat Room", font=("Helvetica", 16,
"bold"), bg="#34495E", fg="white", pady=10)
self.header.pack(fill="x")

self.chat_area = Text(root, width=45, height=20, state=DISABLED, bg="#ECF0F1",


fg="#2C3E50", font=("Arial", 12), wrap="word")
self.chat_area.pack(padx=10, pady=(10, 0))

self.input_frame = EntryFrame(root, self.send_message)


self.input_frame.pack(pady=10)
self.client_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
self.client_socket.connect(("127.0.0.1", 5555))
self.running = True
threading.Thread(target=self.receive_messages, daemon=True).start()
def send_message(self):
message = self.input_frame.get_message()
if message.strip(): # Check if the message is not empty

self.client_socket.send(message.encode("utf-8"))
self.display_message(f"You: {message}")
if message.lower() == "exit":
self.running = False
self.root.quit()
self.input_frame.clear_message()
def receive_messages(self):

Department of Computer Engineering, Pc Polytechnic


Group 42 Roll no 198,201,205,210

while self.running:
try:
message = self.client_socket.recv(1024).decode("utf-8")

self.display_message(f"Server: {message}")
except:
break
def display_message(self, message):

self.chat_area.config(state=NORMAL)
self.chat_area.insert(END, message + "\n")
self.chat_area.config(state=DISABLED)
self.chat_area.see(END) # Scroll to the bottom
def on_close(self):

self.running = False
self.client_socket.send("exit".encode("utf-8"))
self.client_socket.close()
self.root.quit()

class EntryFrame(Frame):
def __init__(self, parent, send_callback):
super().__init__(parent, bg="#2C3E50") # Initialize as a Frame
self.entry = Entry(self, width=40, font=("Arial", 12), bg="#ECF0F1", fg="#2C3E50")
self.entry.grid(row=0, column=0, padx=5)

self.send_button = Button(self, text="Send", font=("Arial", 12, "bold"), bg="#3498DB",


fg="white", command=send_callback)
self.send_button.grid(row=0, column=1, padx=5)

def get_message(self):
return self.entry.get()
def clear_message(self):
self.entry.delete(0, END)
if __name__ == "__main__":
root = Tk()
client = ChatClient(root)
root.protocol("WM_DELETE_WINDOW", client.on_close)

Department of Computer Engineering, Pc Polytechnic


Group 42 Roll no 198,201,205,210

 Output of the micro project:

Department of Computer Engineering, Pc Polytechnic


Group 42 Roll no 198,201,205,210

 Applications of this micro project:


 Real-Time Communication System
 Customer Support Systems
 Collaborative Learning Platforms
 Community Engagement
 Personal Messaging Applications
 IoT Device Communication
 Data Collection for AI Chatbots
 Internal Communication for Small Organizations.

 Action Plan:
SR. DETAILS OF PLANNED PLANNED NAME OF
NO ACTIVITY START FINISHED RESPONSIBLE
DATE DATE TEAM MEMBER
1. Topic given by subject 12/3/25 19/3/25
teacher and discussed Janhavi More
with given members.

2. Design of project 19/3/25 26/3/25


3. Planning of project 26/3/25 2/4/25
4. Distribution of task and 2/4/25 9/4/25
discussion of role and Vaishnavi Matkar
responsibilities of each
other

5. Collection of information 9/4/25 9/4/25


related to the topic
6. Analysed the collected 9/4/25 16/4/25 Sagar Jadhav
data and finalise
structure of the project
7. Report preparation 16/4/25 16/4/25 Om Swami
8. Implementation 16/4/25 16/4/25

Sign: Mrs. Namrata Suryawanshi

Department of Computer Engineering, Pc Polytechnic

You might also like