import React, { useState } from 'react'; import { StyleSheet, Text, View, TextInput, Button, Alert, ScrollView } from 'react-native'; const BLOCK_SCHEDULES = { "Block 1": { "Monday": "07:30 AM - 11:30 AM", "Tuesday": "07:30 AM - 11:30 AM", "Wednesday": "08:30 AM - 12:00 PM", "Thursday": "07:30 AM - 11:30 AM", "Friday": "07:30 AM - 10:30 AM", "Saturday": "No Classes", "Sunday": "No Classes" }, "Block 2": { "Monday": "12:30 PM - 04:30 PM", "Tuesday": "12:30 PM - 04:30 PM", "Wednesday": "01:00 PM - 04:00 PM", "Thursday": "12:30 PM - 04:30 PM", "Friday": "11:00 AM - 02:00 PM", "Saturday": "No Classes", "Sunday": "No Classes" } }; const INITIAL_USER_ACCOUNTS = { "teacher1": { role: "teacher", password: "password123", name: "Mrs. Smith", access: "Grade 10 Admin" }, "parent1": { role: "parent", password: "password123", name: "Maria Dela Cruz", childId: "2026001" }, "student1": { role: "student", password: "password123", studentId: "2026001", blockNum: "Block 1" } }; export default function App() { const [allUsers, setAllUsers] = useState(INITIAL_USER_ACCOUNTS); const [username, setUsername] = useState(""); const [password, setPassword] = useState(""); const [loggedInUser, setLoggedInUser] = useState(null); const [announcement, setAnnouncement] = useState(""); const [postedAnnouncement, setPostedAnnouncement] = useState("No announcements posted yet."); const [isRegistering, setIsRegistering] = useState(false); const [regUsername, setRegUsername] = useState(""); const [regPassword, setRegPassword] = useState(""); const [regStudentId, setRegStudentId] = useState(""); const [regBlockNum, setRegBlockNum] = useState("Block 1"); const getTodaySchedule = (blockNum) => { const schedule = BLOCK_SCHEDULES[blockNum]; if (!schedule) return "No block schedule found"; const daysOfWeek = ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"]; const todayName = daysOfWeek[new Date().getDay()]; return `${todayName}: ${schedule[todayName] || "No classes scheduled"}`; }; const handleRegisterStudent = () => { const cleanUsername = regUsername.trim().toLowerCase(); if (!cleanUsername || !regPassword.trim() || !regStudentId.trim() || !regBlockNum.trim()) { Alert.alert("Error", "Please fill out all registration fields!"); return; } if (allUsers[cleanUsername]) { Alert.alert("Error", "This Username is already registered!"); return; } const newUser = { role: "student", password: regPassword.trim(), studentId: regStudentId.trim(), blockNum: regBlockNum.trim() }; setAllUsers(prevUsers => ({ ...prevUsers, [cleanUsername]: newUser })); Alert.alert("Success!", "Account created! You can now sign in."); setIsRegistering(false); setRegUsername(""); setRegPassword(""); setRegStudentId(""); setRegBlockNum("Block 1"); }; const handleLogin = () => { const user = allUsers[username.trim().toLowerCase()]; if (user && user.password === password) { setLoggedInUser(user); } else { Alert.alert("Login Failed", "Incorrect username or password! Try user: student1, pass: password123"); } }; const handleLogout = () => { setLoggedInUser(null); setUsername(""); setPassword(""); setAnnouncement(""); }; const handlePostAnnouncement = () => { if (announcement.trim() === "") { Alert.alert("Error", "Announcement text cannot be empty!"); return; } setPostedAnnouncement(announcement); setAnnouncement(""); Alert.alert("Success", "Announcement posted for all parents and students!"); }; if (!loggedInUser) { return ( SCHOOL PORTAL Rapidly Connecting {!isRegistering ? ( 🔒 Account Sign In