<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>School Directory</title> <style> body { font-family: Arial, sans-serif; margin: 0; padding: 0; line-height: 1.6; } header { background: #333; color: white; text-align: center; padding: 1rem; } nav { background: #f4f4f4; padding: 1rem; position: sticky; top: 0; z-index: 100; } nav a { margin: 0 15px; text-decoration: none; color: #333; font-weight: bold; } nav a:hover { color: #007BFF; } section { padding: 2rem; border-bottom: 1px solid #ccc; } .entry { margin-bottom: 1.5rem; padding: 1rem; background: #f9f9f9; border-radius: 5px; position: relative; } .entry button { margin-left: 10px; padding: 5px 10px; background: #007BFF; color: white; border: none; cursor: pointer; } .entry button:hover { background: #0056b3; } h2 { color: #333; } .stats { font-style: italic; margin-bottom: 1rem; } form { margin: 1rem 0; padding: 1rem; background: #f0f0f0; border-radius: 5px; } form label { display: block; margin: 0.5rem 0; } form input, form select { width: 100%; max-width: 300px; padding: 5px; } form button { margin-top: 10px; padding: 8px 15px; background: #28a745; color: white; border: none; cursor: pointer; } form button:hover { background: #218838; } footer { text-align: center; padding: 1rem; background: #333; color: white; } @media (max-width: 600px) { nav a { display: block; margin: 10px 0; } section { padding: 1rem; } } </style> </head> <body> <header> <h1>School Directory 2025</h1> <p class="stats">Students: <span id="studentCount">2</span> | Families: <span id="familyCount">2</span> | Donations: $<span id="donationTotal">150</span></p> </header> <nav> <a href="#students">Students</a> <a href="#families">Families</a> <a href="#donations">Donations</a> </nav> <section id="students"> <h2>Student Directory</h2> <div id="studentList"> <div class="entry" data-id="S001"> <strong>[S001] Jane Doe</strong><br> Grade: 5th, Class A<br> Activities: Soccer, Art Club<br> Family: <a href="#F001">[F001] John & Mary Doe</a> <button onclick="editStudent('S001')">Edit</button> </div> <div class="entry" data-id="S002"> <strong>[S002] Tom Smith</strong><br> Grade: 6th, Class B<br> Activities: Chess Club<br> Family: <a href="#F002">[F002] Lisa Smith</a> <button onclick="editStudent('S002')">Edit</button> </div> </div> <form id="addStudentForm" onsubmit="addStudent(event)"> <h3>Add New Student</h3> <label>Full Name: <input type="text" name="name" required></label> <label>Grade: <input type="text" name="grade" required></label> <label>Activities: <input type="text" name="activities"></label> <label>Family ID: <input type="text" name="familyId" required></label> <button type="submit">Add Student</button> </form> </section> <section id="families"> <h2>Family Directory</h2> <div id="familyList"> <div class="entry" data-id="F001"> <strong>[F001] Doe Family</strong><br> Primary: John Doe (Father), Mary Doe (Mother)<br> Contact: (555) 123-4567, [email protected]<br> Students: <a href="#S001">[S001] Jane Doe</a><br> Emergency: Sarah Smith, (555) 987-6543 <button onclick="editFamily('F001')">Edit</button> </div> <div class="entry" data-id="F002"> <strong>[F002] Smith Family</strong><br> Primary: Lisa Smith (Mother)<br> Contact: (555) 456-7890, [email protected]<br> Students: <a href="#S002">[S002] Tom Smith</a> <button onclick="editFamily('F002')">Edit</button> </div> </div> <form id="addFamilyForm" onsubmit="addFamily(event)"> <h3>Add New Family</h3> <label>Family Name: <input type="text" name="name" required></label> <label>Primary Contact: <input type="text" name="primary" required></label> <label>Contact Info: <input type="text" name="contact" required></label> <label>Student ID: <input type="text" name="studentId" required></label> <button type="submit">Add Family</button> </form> </section> <section id="donations"> <h2>Donation Repository</h2> <div id="donationList"> <div class="entry" data-id="D001"> <strong>[D001]</strong><br> Donor: <a href="#F001">John Doe</a><br> Amount: $50 | Date: April 5, 2025<br> Purpose: Library Fund | Status: Received<br> Payment: Online <button onclick="editDonation('D001')">Edit</button> </div> <div class="entry" data-id="D002"> <strong>[D002]</strong><br> Donor: Anonymous<br> Amount: $100 | Date: April 8, 2025<br> Purpose: General Fund | Status: Received<br> Payment: Cash <button onclick="editDonation('D002')">Edit</button> </div> </div> <form id="addDonationForm" onsubmit="addDonation(event)"> <h3>Add New Donation</h3> <label>Donor Name: <input type="text" name="donor" required></label> <label>Amount: <input type="number" name="amount" required></label> <label>Date: <input type="date" name="date" required></label> <label>Purpose: <input type="text" name="purpose" required></label> <label>Status: <select name="status"><option>Received</option><option>Pledged</option></select></label> <button type="submit">Add Donation</button> </form> </section> <footer> <p>Contact: [email protected] | © 2025 School Name</p> </footer> <script> let studentCount = 2, familyCount = 2, donationTotal = 150; const studentList = document.getElementById('studentList'); const familyList = document.getElementById('familyList'); const donationList = document.getElementById('donationList'); function updateStats() { document.getElementById('studentCount').textContent = studentCount; document.getElementById('familyCount').textContent = familyCount; document.getElementById('donationTotal').textContent = donationTotal; } function addStudent(event) { event.preventDefault(); const form = event.target; const name = form.name.value; const grade = form.grade.value; const activities = form.activities.value || 'None'; const familyId = form.familyId.value; const id = `S${String(studentCount + 1).padStart(3, '0')}`; const entry = document.createElement('div'); entry.className = 'entry'; entry.dataset.id = id; entry.innerHTML = ` <strong>[${id}] ${name}</strong><br> Grade: ${grade}<br> Activities: ${activities}<br> Family: <a href="#${familyId}">[${familyId}]</a> <button onclick="editStudent('${id}')">Edit</button> `; studentList.appendChild(entry); studentCount++; updateStats(); form.reset(); } function addFamily(event) { event.preventDefault(); const form = event.target; const name = form.name.value; const primary = form.primary.value; const contact = form.contact.value; const studentId = form.studentId.value; const id = `F${String(familyCount + 1).padStart(3, '0')}`; const entry = document.createElement('div'); entry.className = 'entry'; entry.dataset.id = id; entry.id = id; entry.innerHTML = ` <strong>[${id}] ${name}</strong><br> Primary: ${primary}<br> Contact: ${contact}<br> Students: <a href="#${studentId}">[${studentId}]</a> <button onclick="editFamily('${id}')">Edit</button> `; familyList.appendChild(entry); familyCount++; updateStats(); form.reset(); } function addDonation(event) { event.preventDefault(); const form = event.target; const donor = form.donor.value; const amount = parseInt(form.amount.value); const date = form.date.value; const purpose = form.purpose.value; const status = form.status.value; const id = `D${String(donationList.children.length + 1).padStart(3, '0')}`; const entry = document.createElement('div'); entry.className = 'entry'; entry.dataset.id = id; entry.innerHTML = ` <strong>[${id}]</strong><br> Donor: ${donor}<br> Amount: $${amount} | Date: ${date}<br> Purpose: ${purpose} | Status: ${status}<br> Payment: N/A <button onclick="editDonation('${id}')">Edit</button> `; donationList.appendChild(entry); donationTotal += amount; updateStats(); form.reset(); } function editStudent(id) { const entry = document.querySelector(`[data-id="${id}"]`); const name = prompt('Enter new name:', entry.querySelector('strong').textContent.slice(6)); const grade = prompt('Enter new grade:', entry.children[1].textContent.split(': ')[1]); const activities = prompt('Enter new activities:', entry.children[2].textContent.split(': ')[1]); const familyId = prompt('Enter new family ID:', entry.children[3].children[0].textContent.slice(1, -1)); if (name && grade && familyId) { entry.innerHTML = ` <strong>[${id}] ${name}</strong><br> Grade: ${grade}<br> Activities: ${activities || 'None'}<br> Family: <a href="#${familyId}">[${familyId}]</a> <button onclick="editStudent('${id}')">Edit</button> `; } } function editFamily(id) { const entry = document.querySelector(`[data-id="${id}"]`); const name = prompt('Enter new family name:', entry.querySelector('strong').textContent.slice(6)); const primary = prompt('Enter new primary contact:', entry.children[1].textContent.split(': ')[1]); const contact = prompt('Enter new contact info:', entry.children[2].textContent.split(': ')[1]); const studentId = prompt('Enter new student ID:', entry.children[3].children[0].textContent.slice(1, -1)); if (name && primary && contact && studentId) { entry.innerHTML = ` <strong>[${id}] ${name}</strong><br> Primary: ${primary}<br> Contact: ${contact}<br> Students: <a href="#${studentId}">[${studentId}]</a> <button onclick="editFamily('${id}')">Edit</button> `; } } function editDonation(id) { const entry = document.querySelector(`[data-id="${id}"]`); const donor = prompt('Enter new donor:', entry.children[1].textContent.split(': ')[1]); const amount = parseInt(prompt('Enter new amount:', entry.children[2].textContent.split('$')[1].split(' ')[0])); const date = prompt('Enter new date:', entry.children[2].textContent.split('Date: ')[1].split('<')[0]); const purpose = prompt('Enter new purpose:', entry.children[3].textContent.split(': ')[1].split(' |')[0]); const status = prompt('Enter new status (Received/Pledged):', entry.children[3].textContent.split('Status: ')[1].split('<')[0]); if (donor && amount && date && purpose && status) { const oldAmount = parseInt(entry.children[2].textContent.split('$')[1].split(' ')[0]); donationTotal = donationTotal - oldAmount + amount; entry.innerHTML = ` <strong>[${id}]</strong><br> Donor: ${donor}<br> Amount: $${amount} | Date: ${date}<br> Purpose: ${purpose} | Status: ${status}<br> Payment: N/A <button onclick="editDonation('${id}')">Edit</button> `; updateStats(); } } </script> </body> </html>