KCSE Computer Studies Project
KCSE Computer Studies Project
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:
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
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
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
2|Page
C. Software Requirements
The School Club Management System (SCMS) will include the following key modules:
3|Page
7. Database Design (Tables & Relationships)
8. Expected Outputs
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
4|Page
10. Tools & Technologies
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
Open MS Access and create a new database file called SCMS.accdb. Then, create the following tables: Page | 6
1. Students Table
2. Clubs Table
3. Patrons Table
6|Page
4. Memberships Table Page | 7
5. Club_Activities Table
6. Club_Finances 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
8|Page
Use Queries to compute important values.
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;
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;
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
Now, let's design the Forms and Reports to make the system user-friendly.
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.
3. Membership Form
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
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
We’ll enter some test records to verify that the database works correctly.
1. Students Table:
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:
4. Memberships Table:
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.
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.
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.
15 | P a g e
We’ll add VBA (Visual Basic for Applications) code for buttons to perform automated actions.
vba
CopyEdit
Function CalculateClubFinances()
Dim db As DAO.Database
Dim rs As DAO.Recordset
Set db = CurrentDb()
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
vba
CopyEdit
Private Sub btnCalculate_Click()
CalculateClubFinances
End Sub
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
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
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
Students can exit a club at the beginning of an academic year, but they must be members of at least one
club.
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()
vba
CopyEdit
Private Sub btnExitClub_Click()
ExitClub Me.txtAdmissionNo, Me.cboClubID
End Sub
This feature allows users to save reports as PDFs for printing or sharing.
20 | P a g e
VBA Code to Export Reports
vba
CopyEdit
Private Sub btnExportPDF_Click()
ExportReportToPDF "rptFinancialSummary", "C:\Reports\
FinancialSummary.pdf"
End Sub
Test Cases
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
22 | P a g e