CORE PROJECT REPORT
NAME: Ishika Tomar
EMPLOYEE CODE: PI/23/213T
PROJECT NAME: Fundraising Event Planner
LANGUAGE USED: PYTHON, SQL, JSON
GUI BASED PROJECT
Fundraising Event Planner Project Report
Introduction
Fundraising events play a crucial role in gathering resources and raising
awareness for various causes. These events require meticulous planning,
organization, and execution to ensure their success. The rapid advancement in
technology has provided numerous tools and platforms to streamline the
management of such events. One of the essential tools for event planning is a
digital application that helps organizers keep track of event details, participant
information, and financial data. The Fundraising Event Planner project aims to
provide an efficient, user-friendly solution for managing fundraising events
through a graphical user interface (GUI) built with Python's Tkinter library and a
robust backend using MySQL for data storage.
The need for an organized approach to event management is more significant
than ever, as events become increasingly complex and data-driven. This project
addresses the challenges faced by event planners, offering functionalities such
as adding, updating, deleting, and viewing event details, along with the ability to
save data to files and retrieve it as needed. By automating these processes, the
Fundraising Event Planner reduces the administrative burden on organizers,
allowing them to focus more on the event's core objectives.
Objective
The primary objective of the Fundraising Event Planner project is to develop a
comprehensive application that aids in the management of fundraising events.
The application aims to achieve the following goals:
1. Streamline Event Management: Provide a centralized platform for
organizing and managing event details.
2. Enhance Data Accessibility: Facilitate easy access to event data through
a user-friendly interface.
3. Ensure Data Integrity: Maintain accurate and up-to-date records using a
robust database.
4. Automate Administrative Tasks: Reduce manual data entry and
administrative workload by automating CRUD (Create, Read, Update,
Delete) operations.
5. Support Data Persistence: Enable saving and loading of event data to
and from external files.
Background
Fundraising events are pivotal for many non-profit organizations, educational
institutions, and community groups. These events generate essential funds that
enable these organizations to carry out their missions and initiatives. However,
the process of planning, organizing, and executing fundraising events can be
complex and demanding. Effective management of these events involves
coordinating numerous tasks, tracking various details, and ensuring everything
runs smoothly. This is where the Fundraising Event Planner project comes into
play, offering a structured and user-friendly solution to streamline the entire event
management process.
Project Overview
The Fundraising Event Planner is a desktop application built using Python's
tkinter library for the graphical user interface (GUI) and MySQL for database
management. This application aims to simplify the process of organizing
fundraising events by providing a robust platform that supports essential CRUD
(Create, Read, Update, Delete) operations. Users can easily add, view, update,
and delete event records, ensuring that all necessary information is well-
organized and readily accessible.
Modules of the Project
The project is structured into several key modules, each designed to handle
specific aspects of event management. These modules work together to provide
a comprehensive and efficient solution for organizing fundraising events.
1. User Interface Module:
○ Tkinter Integration: The application leverages tkinter to create a
graphical user interface. This module is responsible for rendering the
main application window, input forms, buttons, and other interactive
elements. The use of tkinter ensures that the application is
accessible and easy to use, even for users with limited technical
expertise.
○ Event Details Form: The form allows users to enter details about
the event, including the event name, date, location, and description.
This structured input method ensures that all necessary information
is captured accurately.
○ Event List View: A treeview component displays a list of all events
stored in the database. Users can select events from this list to view,
update, or delete specific records, making it easy to manage multiple
events simultaneously.
2. Database Module:
○ MySQL Integration: This module handles the connection to the
MySQL database, using the mysql-connector-python library to
interact with the database. MySQL is chosen for its reliability,
scalability, and wide usage in industry, making it a suitable choice
for managing event data.
○ CRUD Operations: The module provides functions to perform
Create, Read, Update, and Delete operations on the event records
stored in the database. This functionality ensures that users can
manage their data effectively, maintaining up-to-date records of all
events.
3. File Management Module:
○ Data Export: This module allows users to export event data to a
JSON file. This feature provides a backup and an easy way to share
data, ensuring that important information is not lost and can be
easily transferred between different instances of the application.
○ Data Import: Users can import event data from a JSON file,
facilitating the quick setup of the application with pre-existing event
records. This feature is particularly useful for users who need to
migrate data from another system or restore a backup.
4. Event Management Module:
○ Add Event: This functionality enables users to add new events to
the database by entering the necessary details in the input form. The
application validates the input to ensure that all required information
is provided.
○ Update Event: Users can select an event from the list view, modify
its details, and save the changes to the database. This feature
allows for easy corrections and updates, ensuring that event records
remain accurate and up-to-date.
○ Delete Event: This feature allows users to remove an event from the
database, ensuring that obsolete or incorrect records can be
cleaned up easily.
○ Clear Fields: A utility function to clear all input fields, helping users
to reset the form before entering new data. This feature enhances
user experience by simplifying the process of adding multiple
events.
The Fundraising Event Planner project has significant potential for future
enhancements, which can further improve its utility and efficiency in managing
fundraising events.
1. Enhanced Reporting:
○ Implementing advanced reporting features that can generate
detailed reports on past events, including participant statistics, funds
raised, and event feedback. This will provide valuable insights into
the performance of fundraising activities.
○ Integrating data visualization tools to provide insights into event
performance through charts and graphs. This can help event
organizers identify trends and make informed decisions.
2. Integration with Payment Gateways:
○ Allowing users to handle ticket sales and donations directly through
the application by integrating with popular payment gateways such
as PayPal or Stripe. This integration will streamline the fundraising
process, making it easier for participants to contribute.
○ Providing real-time tracking of funds raised during the event. This
feature will give event organizers immediate feedback on the
success of their efforts, allowing them to adjust strategies as
needed.
3. Multi-User Support:
○ Implementing a user authentication system to allow multiple users to
access the application, each with their own set of permissions and
roles. This will enable collaboration among team members,
enhancing the overall efficiency of event management.
○ Enabling real-time data sharing and updates among users. This
feature will ensure that all team members are working with the most
current information, reducing the risk of errors and
miscommunication.
4. Mobile Application:
○ Developing a mobile version of the application to provide event
organizers with the flexibility to manage events on the go. This will
be particularly useful for tasks that need to be handled during the
event itself, such as participant check-in and on-site registration.
○ Synchronizing data between the desktop and mobile versions to
ensure consistency and accessibility. This feature will provide a
seamless user experience across different devices, making the
application more versatile and convenient to use.
5. Integration with Social Media:
○ Adding features to promote events on social media platforms directly
from the application. This integration will help increase visibility and
attract more participants, boosting the overall success of the
fundraising event.
○ Enabling social media login options for participants and organizers.
This feature will simplify the registration process and provide
additional data points for event organizers.
The Fundraising Event Planner project consists of several modules, each
addressing a specific aspect of event management. The application is built using
Python and the Tkinter library for the GUI, with MySQL serving as the backend
database. Below is a detailed overview of the project modules:
1. User Interface Module
This module is responsible for creating the graphical user interface of the
application. It utilizes Tkinter to design the layout, including input fields for event
details, buttons for various operations, and a treeview widget to display the list of
events. The user interface is designed to be intuitive and easy to navigate,
ensuring a smooth user experience.
2. Database Module
The database module handles all interactions with the MySQL database. It
includes functions to connect to the database, execute SQL queries, and
manage database transactions. This module ensures that all event data is
securely stored and efficiently retrieved when needed. It supports the CRUD
operations necessary for managing event records.
3. Event Management Module
This module contains the core logic for managing events. It includes functions for
adding new events, updating existing event details, deleting events, and clearing
input fields. Each function interacts with the database module to perform the
necessary operations and update the user interface accordingly.
4. File Management Module
The file management module provides functionalities for saving event data to
external files and loading data from files. This module supports JSON format for
data storage, ensuring that event details can be easily exported and imported. It
includes functions to convert event records to JSON objects and write them to
files, as well as read JSON data from files and update the database.
5. Error Handling and Validation Module
To ensure data integrity and provide a robust user experience, this module
includes error handling and validation functions. It validates user inputs for
completeness and correctness before performing any database operations.
Additionally, it handles potential errors that may occur during database
interactions or file operations, providing appropriate feedback to the user.
Coding and Output Screenshots
Below are some screenshots of the application in action:
Future Scope
The Fundraising Event Planner has significant potential for future enhancements,
offering several opportunities to improve and expand its functionalities:
1. Integration with Online Platforms: The application can be extended to
integrate with online event platforms and social media, allowing organizers
to promote events and manage registrations directly through the
application.
2. Advanced Analytics and Reporting: Adding features for advanced data
analytics and reporting can help organizers gain insights into event
performance, participant demographics, and fundraising outcomes. This
data-driven approach can enhance strategic decision-making for future
events.
3. Mobile Application Development: Developing a mobile version of the
application would provide greater flexibility and accessibility for event
organizers who need to manage events on-the-go.
4. Collaboration Features: Implementing collaboration tools, such as shared
event planning and real-time updates, can facilitate teamwork and
coordination among multiple organizers.
By continuously evolving and incorporating new features, the Fundraising Event
Planner can significantly enhance the efficiency and effectiveness of event
management, ultimately contributing to the success of fundraising initiatives.
Conclusion
The Fundraising Event Planner project demonstrates the power of combining
modern technology with event management practices. By providing a
comprehensive and user-friendly platform, the application simplifies the process
of organizing and managing fundraising events. The project's modular design
ensures flexibility and scalability, allowing for future enhancements and
integrations.
Through its various functionalities, including data persistence, CRUD operations,
and an intuitive user interface, the Fundraising Event Planner addresses the
critical needs of event organizers. The project's success underscores the
importance of leveraging technology to streamline administrative tasks, enhance
data accessibility, and ensure data integrity. As the application continues to
evolve, it holds the potential to become an indispensable tool for event
management, driving the success of fundraising efforts and making a positive
impact on various causes.
References
1. Tkinter Documentation. Python Software Foundation. Retrieved from
https://docs.python.org/3/library/tkinter.html
2. MySQL Connector/Python Developer Guide. Oracle Corporation.
Retrieved from https://dev.mysql.com/doc/connector-python/en/
3. JSON Documentation. JavaScript Object Notation. Retrieved from
https://www.json.org/json-en.html
4. "Python Programming: An Introduction to Computer Science" by John M.
Zelle.
5. "Fundamentals of Database Systems" by Ramez Elmasri and Shamkant B.
Navathe.
6. Stack Overflow: Python and MySQL Integration. Retrieved from
https://stackoverflow.com/questions/tagged/mysql+python
7. "Automate the Boring Stuff with Python" by Al Sweigart.