0% found this document useful (0 votes)
373 views

KCSE Computer Studies Project

The Victory School Club Management System (SCMS) aims to automate and streamline the management of school clubs, addressing issues related to manual tracking of memberships, finances, and activities. The system will include features for student registration, financial management, and report generation, utilizing a database management system for efficiency. Key functionalities will involve tracking memberships, managing club activities, and generating detailed financial and membership reports.

Uploaded by

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

KCSE Computer Studies Project

The Victory School Club Management System (SCMS) aims to automate and streamline the management of school clubs, addressing issues related to manual tracking of memberships, finances, and activities. The system will include features for student registration, financial management, and report generation, utilizing a database management system for efficiency. Key functionalities will involve tracking memberships, managing club activities, and generating detailed financial and membership reports.

Uploaded by

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

KCSE Computer Studies Project: School Club Management System (SCMS)

Milestone 1: Project Proposal

1. Project Title Page | 1

Victory School Club Management System (SCMS)

2. Introduction

Victory School offers various co-curricular activities through clubs and societies. Each student is required
to register for at least one club upon admission. Managing these clubs manually poses challenges in
tracking membership, handling finances, and generating reports efficiently.

The School Club Management System (SCMS) will be developed to streamline these processes by
automating student registrations, club membership tracking, activity management, financial record-
keeping, and report generation. This system will ensure smooth operations within school clubs and
improve overall efficiency.

3. Problem Statement

Currently, the school manages club memberships, finances, and activities manually, leading to:

 Difficulties in tracking student memberships and leadership roles across clubs.


 Inaccurate financial records due to manual calculations of fees, expenses, and school
contributions.
 Time-consuming and error-prone report generation, making decision-making inefficient.
 Challenges in monitoring club activities and revenue-generating events for each club.

To address these issues, a database management system (DBMS) will be developed to digitize and
automate club-related processes, making data management more accurate, efficient, and reliable.

1|Page
4. Objectives of the System

The proposed system aims to:

1. Store and manage details of school clubs and their assigned patrons. Page | 2
2. Track student memberships, roles, and club leadership positions.
3. Manage club activities and events, including revenue generation and event details.
4. Monitor membership changes, allowing students to join or exit clubs while ensuring
compliance with school policies.
5. Automate financial tracking, including club registration fees, revenue from events, and
expenses.
6. Compute the school’s financial contributions to club activities and annual events.
7. Calculate club savings based on revenue allocation policies.
8. Generate detailed reports on financial summaries, membership details, and club activities.

5. System Requirements

A. User Requirements

The system should allow users to:

 Register students into clubs and assign them roles (general member, executive, etc.).
 Record and track club activities, including events and revenue generated.
 Compute and track club finances, including school contributions and club savings.
 Generate reports for club membership, activities, and financial summaries.

B. Hardware Requirements

 Processor: Intel Core i3 or higher


 RAM: 4GB or higher
 Storage: Minimum 100GB HDD/SSD
 Display: Standard monitor or laptop screen
 Input Devices: Keyboard, Mouse

2|Page
C. Software Requirements

 Database Management System: MS Access / MySQL


 Programming Language: Visual Basic / Python / PHP
 User Interface: MS Access Forms or a Web-based UI Page | 3
 Operating System: Windows 10 / Linux

6. System Features & Functionalities

The School Club Management System (SCMS) will include the following key modules:

1. Student Membership Management


o Register students into clubs upon admission.
o Allow students to update their membership status annually.
o Maintain records of club executives and their leadership positions.
2. Club Management
o Store and manage details of all clubs in the school.
o Assign patrons (teachers) to specific clubs.
3. Activity & Event Management
o Record club activities and events.
o Store details such as activity name, date, and revenue generated.
4. Financial Management
o Record and compute registration fees for each club.
o Track revenue from club activities.
o Allocate funds according to the school’s revenue-sharing model (50% for activities, 30%
for events, 20% savings).
o Compute the school's 70% contribution toward club annual events.
5. Reports Generation
o Generate Student Membership Reports with details of students and their clubs.
o Produce Club Financial Summary Reports showing registration fees, activity revenue,
expenses, and savings.
o Create Club Activities Reports listing all events and financial outcomes.
o Generate Membership Change Reports, tracking students who join or leave clubs.

3|Page
7. Database Design (Tables & Relationships)

The system database will include the following key tables:

Table Name Description Key Fields Page | 4


Students Stores student details Admission Number, Name, Class
Clubs Stores club details Club ID, Club Name, Patron ID
Patrons Stores details of club patrons Patron ID, Name, Assigned Club
(teachers)
Memberships Tracks student memberships Membership ID, Admission Number, Club ID, Role,
Year
Club_Activities Stores club event details Activity ID, Club ID, Activity Name, Date, Revenue
Club_Finances Tracks financial transactions Finance ID, Club ID, Registration Fees, Revenue,
Expenses, Savings

8. Expected Outputs

The system will generate the following reports:

 Student Membership Report: Displays student details, their clubs, and roles.
 Financial Summary Report: Shows club earnings, expenses, school contributions, and
remaining savings.
 Club Activity Report: Lists club events, dates, and revenue generated.
 Membership Change Report: Tracks students joining or leaving clubs at the start of the
academic year.

9. Project Scope

The system will focus on:

 Managing club membership records for students and executives.


 Automating financial transactions related to club operations.
 Tracking club activities and revenue-generating events.
 Generating reports for easy analysis by club patrons and school administration.

4|Page
10. Tools & Technologies

 Database: MS Access / MySQL


 Development Tools: Visual Basic / Python / PHP
 Reporting: MS Access Reports / Python Reporting Libraries Page | 5
 Interface: MS Access Forms / Web-based UI

11. Conclusion

The Victory School Club Management System (SCMS) will enhance the management of clubs by
automating membership tracking, event monitoring, financial calculations, and reporting. By
implementing this system, the school will improve efficiency, ensure accurate financial records, and
streamline club operations.

5|Page
PRACTICAL PROJECT ACTIVITY

Step 1: Create Tables in MS Access

Open MS Access and create a new database file called SCMS.accdb. Then, create the following tables: Page | 6

1. Students Table

Stores details of students.

Field Name Data Type Description


AdmissionN Short Text (Primary Key) Unique student admission number
o
FullName Short Text Student's full name
Class Short Text Student’s class (e.g., 1E, 2N, etc.)

2. Clubs Table

Stores information about clubs.

Field Data Type Description


Name
ClubID AutoNumber (Primary Key) Unique club identifier
ClubName Short Text Name of the club
PatronID Number (Foreign Key) Links to the patron
(teacher)

3. Patrons Table

Stores teacher details who mentor clubs.

Field Name Data Type Description


PatronID AutoNumber (Primary Unique ID for the patron
Key)
FullName Short Text Patron's full name
AssignedClub Number (Foreign Key) Club assigned (links to Clubs table)

6|Page
4. Memberships Table Page | 7

Stores student membership details for clubs.

Field Name Data Type Description


MembershipI AutoNumber (Primary Key) Unique membership record
D
AdmissionNo Short Text (Foreign Key) Links to Students table
ClubID Number (Foreign Key) Links to Clubs table
Role Short Text Student role (General/Executive)
Year Number Academic year

5. Club_Activities Table

Stores details of club activities.

Field Name Data Type Description


ActivityID AutoNumber (Primary Unique ID for each activity
Key)
ClubID Number (Foreign Key) Links to Clubs table
ActivityName Short Text Name of the activity
ActivityDate Date/Time Date when activity occurs
RevenueGenerated Currency Amount earned

6. Club_Finances Table

Tracks financial details for each club.

Field Name Data Type Description


FinanceID AutoNumber (Primary Unique finance record
Key)
ClubID Number (Foreign Key) Links to Clubs table

7|Page
RegistrationFees Currency Total registration fees collected
RevenueFromActivities Currency Total revenue from activities
TotalFunds Currency Sum of fees + revenue
ActivityAllocation Currency 50% of TotalFunds (for club activities)
EventAllocation Currency 30% of TotalFunds (for annual parties/events) Page | 8
SchoolContribution Currency 70% of EventAllocation (School’s share)
Savings Currency Remaining amount after allocations

Step 2: Define Relationships

Go to Database Tools > Relationships and set up the following relationships:

1. Students (AdmissionNo) → Memberships (AdmissionNo) (One-to-Many)


2. Clubs (ClubID) → Memberships (ClubID) (One-to-Many)
3. Clubs (ClubID) → Club_Activities (ClubID) (One-to-Many)
4. Clubs (ClubID) → Club_Finances (ClubID) (One-to-One)
5. Patrons (PatronID) → Clubs (PatronID) (One-to-One)

Ensure Referential Integrity is enforced.

Step 3: Create Forms for Data Entry

To make data entry easier, create Forms for each table:

1. Student Registration Form (Inputs student details)


2. Club Management Form (Manage clubs and assign patrons)
3. Membership Form (Register students into clubs)
4. Club Activities Form (Record activities and revenue)
5. Club Finances Form (Manage club funds)

Step 4: Create Queries for Financial Computations

8|Page
Use Queries to compute important values.

1. Calculate Club Financial Allocations

Create a query that calculates financial allocations for each club: Page | 9

sql
CopyEdit
SELECT ClubID,
(RegistrationFees + RevenueFromActivities) AS TotalFunds,
(0.5 * (RegistrationFees + RevenueFromActivities)) AS
ActivityAllocation,
(0.3 * (RegistrationFees + RevenueFromActivities)) AS
EventAllocation,
(0.7 * (0.3 * (RegistrationFees + RevenueFromActivities))) AS
SchoolContribution,
(0.2 * (RegistrationFees + RevenueFromActivities)) AS Savings
FROM Club_Finances;

2. Membership Report Query

To get a list of students and their club memberships:

sql
CopyEdit
SELECT Students.AdmissionNo, Students.FullName, Students.Class,
Clubs.ClubName, Memberships.Role
FROM Students INNER JOIN (Clubs INNER JOIN Memberships ON Clubs.ClubID
= Memberships.ClubID)
ON Students.AdmissionNo = Memberships.AdmissionNo;

3. Club Activities Report Query

To get details of club activities and revenue:

sql
CopyEdit

9|Page
SELECT Clubs.ClubName, Club_Activities.ActivityName,
Club_Activities.ActivityDate, Club_Activities.RevenueGenerated
FROM Clubs INNER JOIN Club_Activities ON Clubs.ClubID =
Club_Activities.ClubID;
Page | 10

Step 5: Create Reports

Use MS Access Reports to generate:

1. Student Membership Report


o Displays students and their respective clubs.
2. Club Financial Summary Report
o Shows financial breakdown (fees, revenue, expenses, savings).
3. Club Activities Report
o Lists activities, dates, and funds generated.
4. Membership Change Report
o Tracks students joining and leaving clubs.

Step 6: Designing Forms and Reports in MS Access

Now, let's design the Forms and Reports to make the system user-friendly.

A. Designing Forms for Data Entry

1. Student Registration Form

 Purpose: Allows users to enter student details.


 Steps to create:
1. Go to Create > Form Design.
2. Select the Students table as the data source.
3. Drag fields: AdmissionNo, FullName, Class into the form.

10 | P a g e
4. Add buttons for Save, Delete, and Search (use the Button Wizard).
5. Format the form with labels and colors.

2. Club Management Form


Page | 11
 Purpose: Allows admin to add clubs and assign patrons.
 Steps:
1. Create a new form based on the Clubs table.
2. Add fields: ClubName, PatronID.
3. Use a Combo Box for Patron selection (fetch from the Patrons table).
4. Add a Save button.

3. Membership Form

 Purpose: Assigns students to clubs and records their roles.


 Steps:
1. Create a Memberships Form.
2. Include fields: AdmissionNo, ClubID, Role, Year.
3. Use Combo Boxes for selecting AdmissionNo (Students table) and ClubID (Clubs
table).
4. Add buttons for Assign Member, Remove Member.

4. Club Activities Form

 Purpose: Records club activities and revenue.


 Steps:
1. Create a new form for the Club_Activities table.
2. Include fields: ClubID, ActivityName, ActivityDate, RevenueGenerated.
3. Use a Date Picker for ActivityDate.
4. Add buttons: Save Activity, Delete Activity.

5. Club Finances Form

 Purpose: Tracks club funds and allocations.


 Steps:
1. Create a form for the Club_Finances table.

11 | P a g e
2. Include fields: ClubID, RegistrationFees, RevenueFromActivities, TotalFunds,
Allocations, Savings.
3. Use a calculated text box to show TotalFunds.
4. Add a button to Update Financials.
Page | 12

B. Designing Reports for Data Analysis

1. Student Membership Report

 Shows all students and their clubs.


 Steps:
1. Go to Create > Report Wizard.
2. Select Students, Clubs, and Memberships tables.
3. Add fields: AdmissionNo, FullName, Class, ClubName, Role.
4. Sort by Class, then ClubName.
5. Format report with headers and page numbers.

2. Club Financial Summary Report

 Displays income, expenses, and savings for each club.


 Steps:
1. Create a new report for Club_Finances.
2. Add fields: ClubID, RegistrationFees, Revenue, ActivityAllocation, EventAllocation,
Savings.
3. Use Group By ClubID to organize data by club.
4. Add a calculated field for TotalFunds = RegistrationFees +
RevenueFromActivities.
5. Format and preview.

3. Club Activities Report

 Lists club events and money raised.

12 | P a g e
 Steps:
1. Use the Report Wizard for Club_Activities.
2. Add fields: ClubName, ActivityName, ActivityDate, RevenueGenerated.
3. Sort by ActivityDate.
4. Format and add a Total Revenue calculation. Page | 13

4. Membership Change Report

 Tracks new and exiting members.


 Steps:
1. Create a query filtering students who joined/exited clubs this year.
2. Base a report on the query.
3. Add fields: AdmissionNo, FullName, ClubID, Year, Status (Joined/Left).
4. Format with a summary count of changes.

Step 7: Testing the System with Sample Data

We’ll enter some test records to verify that the database works correctly.

A. Enter Sample Data

1. Students Table:

AdmissionN FullName Class


o
1001 Alex Mwangi 1E
1002 Janet Kiprono 2N
1003 Brian Omondi 3S
1004 Mary Atieno 4W

2. Clubs Table:

13 | P a g e
ClubI ClubName PatronID
D
1 Debate Club 1
2 Chess Club 2
Page | 14
3 Science Club 3
4 Music Club 4

3. Patrons Table:

PatronID FullName AssignedClub


1 Mr. Kamau 1
2 Ms. Wanjiru 2
3 Mr. Otieno 3
4 Mrs. Achieng 4

4. Memberships Table:

MembershipID AdmissionNo ClubI Role Year


D
1 1001 1 General 2025
2 1002 2 Executive 2025
3 1003 3 General 2025

5. Club Activities Table:

ActivityI ClubID ActivityName ActivityDat RevenueGenerated


D e
1 1 Debate Tournament 12/02/2025 5000
2 2 Chess Challenge 20/03/2025 4000

6. Club Finances Table:

Finan Clu Registrati RevenueFrom TotalF ActivityAll EventAll SchoolCont Savi


ceID bID onFees Activities unds ocation ocation ribution ngs
1 1 2000 5000 7000 3500 2100 1470 1400

14 | P a g e
2 2 1500 4000 5500 2750 1650 1155 1100

B. Verify Queries
Page | 15
Now, run the following queries to check if data is correct.

1. Total Funds Calculation Query:

sql
CopyEdit
SELECT ClubID,
(RegistrationFees + RevenueFromActivities) AS TotalFunds,
(0.5 * (RegistrationFees + RevenueFromActivities)) AS ActivityAllocation,
(0.3 * (RegistrationFees + RevenueFromActivities)) AS EventAllocation,
(0.7 * (0.3 * (RegistrationFees + RevenueFromActivities))) AS
SchoolContribution,
(0.2 * (RegistrationFees + RevenueFromActivities)) AS Savings
FROM Club_Finances;

Expected Output: Should match sample data in the Club Finances Table.

2. Membership Report Query:

sql
CopyEdit
SELECT Students.AdmissionNo, Students.FullName, Students.Class,
Clubs.ClubName, Memberships.Role
FROM Students
INNER JOIN (Clubs INNER JOIN Memberships ON Clubs.ClubID =
Memberships.ClubID)
ON Students.AdmissionNo = Memberships.AdmissionNo;

Expected Output: Should return student names along with club membership details.

Step 8: Automating the System with VBA

15 | P a g e
We’ll add VBA (Visual Basic for Applications) code for buttons to perform automated actions.

A. Automate Financial Calculations

1. Open MS Access > VBA Editor (ALT + F11) Page | 16


2. Insert a New Module
3. Paste the following VBA code:

vba
CopyEdit
Function CalculateClubFinances()
Dim db As DAO.Database
Dim rs As DAO.Recordset
Set db = CurrentDb()

' Open the Club Finances table


Set rs = db.OpenRecordset("Club_Finances", dbOpenDynaset)

' Loop through each club and update financial fields


Do While Not rs.EOF
Dim totalFunds As Double
Dim activityAllocation As Double
Dim eventAllocation As Double
Dim schoolContribution As Double
Dim savings As Double

totalFunds = rs!RegistrationFees + rs!RevenueFromActivities


activityAllocation = totalFunds * 0.5
eventAllocation = totalFunds * 0.3
schoolContribution = eventAllocation * 0.7
savings = totalFunds * 0.2

' Update fields


rs.Edit
rs!TotalFunds = totalFunds

16 | P a g e
rs!ActivityAllocation = activityAllocation
rs!EventAllocation = eventAllocation
rs!SchoolContribution = schoolContribution
rs!Savings = savings
rs.Update Page | 17

rs.MoveNext
Loop

rs.Close
db.Close

MsgBox "Financial calculations updated!", vbInformation, "Success"


End Function

4. Link VBA to a Button


o Open Club Finances Form.
o Add a Button (Click Design > Button).
o Select On Click > [Event Procedure].
o Click …" and enter this code:

vba
CopyEdit
Private Sub btnCalculate_Click()
CalculateClubFinances
End Sub

B. Automate Membership Registration

1. Go to VBA Editor and add this function:

vba
CopyEdit

17 | P a g e
Function RegisterMember(admissionNo As String, clubID As Integer, role
As String, year As Integer)
Dim db As DAO.Database
Dim rs As DAO.Recordset
Set db = CurrentDb() Page | 18

' Check if student is already registered


Set rs = db.OpenRecordset("SELECT * FROM Memberships WHERE
AdmissionNo='" & admissionNo & "' AND ClubID=" & clubID,
dbOpenDynaset)

If rs.EOF Then
' Add new record
db.Execute "INSERT INTO Memberships (AdmissionNo, ClubID,
Role, Year) VALUES ('" & admissionNo & "', " & clubID & ", '" & role &
"', " & year & ")"
MsgBox "Student successfully registered!", vbInformation,
"Success"
Else
MsgBox "Student is already a member of this club!",
vbExclamation, "Warning"
End If

rs.Close
db.Close
End Function

2. Link to Membership Form Button


o Open Membership Form.
o Add a Button called btnRegister.
o Select On Click > [Event Procedure].
o Enter:

vba
CopyEdit

18 | P a g e
Private Sub btnRegister_Click()
Dim admissionNo As String
Dim clubID As Integer
Dim role As String
Dim year As Integer Page | 19

admissionNo = Me.txtAdmissionNo.Value
clubID = Me.cboClubID.Value
role = Me.cboRole.Value
year = Me.txtYear.Value

RegisterMember admissionNo, clubID, role, year


End Sub

1. Automating Student Exits

Students can exit a club at the beginning of an academic year, but they must be members of at least one
club.

VBA Code for Student Exit

1. Open VBA Editor (ALT + F11)


2. Insert a New Module
3. Paste the following code:

vba
CopyEdit
Function ExitClub(admissionNo As String, clubID As Integer)
Dim db As DAO.Database

19 | P a g e
Dim rs As DAO.Recordset
Set db = CurrentDb()

' Check if the student belongs to more than one club


Set rs = db.OpenRecordset("SELECT COUNT(*) AS ClubCount FROM Page | 20
Memberships WHERE AdmissionNo='" & admissionNo & "'", dbOpenSnapshot)
If rs!ClubCount > 1 Then
db.Execute "DELETE FROM Memberships WHERE AdmissionNo='" &
admissionNo & "' AND ClubID=" & clubID
MsgBox "Student successfully exited the club.", vbInformation,
"Success"
Else
MsgBox "Student must be in at least one club!", vbExclamation,
"Error"
End If
rs.Close
db.Close
End Function

4. Link to "Exit Club" Button


o Open the Membership Form.
o Add a Button labeled Exit Club (btnExitClub).
o Set On Click > [Event Procedure], then enter:

vba
CopyEdit
Private Sub btnExitClub_Click()
ExitClub Me.txtAdmissionNo, Me.cboClubID
End Sub

2. Export Reports to PDF

This feature allows users to save reports as PDFs for printing or sharing.

20 | P a g e
VBA Code to Export Reports

1. Open VBA Editor (ALT + F11)


2. Paste the following code:
Page | 21
vba
CopyEdit
Function ExportReportToPDF(reportName As String, filePath As String)
DoCmd.OutputTo acOutputReport, reportName, acFormatPDF, filePath
MsgBox "Report exported successfully!", vbInformation, "Success"
End Function

3. Create an Export Button for Reports


o Open Reports Menu Form.
o Add a Button labeled Export to PDF (btnExportPDF).
o Set On Click > [Event Procedure], then enter:

vba
CopyEdit
Private Sub btnExportPDF_Click()
ExportReportToPDF "rptFinancialSummary", "C:\Reports\
FinancialSummary.pdf"
End Sub

4. Ensure Folder Exists:


o Make sure C:\Reports\ exists. Otherwise, create it manually.

3. Final Testing & Debugging

Test Cases

Test Scenario Expected Result


Add a student to a club Student added to Memberships table
Register a student twice for the same Error message: "Student is already a member"

21 | P a g e
club
Exit a student from a club Student removed from Memberships table if they are in multiple
clubs
Exit a student who is in only one club Error message: "Student must be in at least one club"
Page | 22
Perform financial calculations Fields update correctly
Export financial report Report saved as PDF

Fix Common Errors

 Debugging VBA Code:


o If an error occurs, press Debug to highlight the issue.
o Ensure all form and control names match the ones in your database.
 Checking Queries:
o Run queries in SQL View to verify they retrieve the correct data.
 Validating Data Entry:
o Add input validation in forms to prevent incorrect data entry.

22 | P a g e

You might also like