0% found this document useful (0 votes)
14 views14 pages

Project Workflow Backend (PHP With Mysql) Database Design Tables

The document outlines a comprehensive school management system with a backend built on PHP and MySQL, featuring role-based user management, class and student management, attendance tracking, fee handling, and a chat system. The frontend is developed using Flutter, providing role-specific dashboards and responsive design, along with additional features like parent-teacher meeting scheduling and AI-based insights. The system emphasizes secure API communication, real-time features, and analytics for effective management and user engagement.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
14 views14 pages

Project Workflow Backend (PHP With Mysql) Database Design Tables

The document outlines a comprehensive school management system with a backend built on PHP and MySQL, featuring role-based user management, class and student management, attendance tracking, fee handling, and a chat system. The frontend is developed using Flutter, providing role-specific dashboards and responsive design, along with additional features like parent-teacher meeting scheduling and AI-based insights. The system emphasizes secure API communication, real-time features, and analytics for effective management and user engagement.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 14

Project Workflow

Backend (PHP with MySQL)

1. Database Design

o Tables:

▪ Users (role-based: Super Admin, Admin, Clerk, Teacher, Parent)

▪ Classes (class details, subjects, teachers assigned)

▪ Students (details, admission, fees, attendance, performance)

▪ Teachers (personal and professional data)

▪ Fees (structure, payments, pending dues)

▪ Documents (uploaded by parents or admins)

▪ Notifications (broadcasts, alerts)

▪ Messages (chat system)

▪ Leave Requests (teacher and parent)

▪ Study Material (files, links, videos for classes)

▪ Attendance (daily records)

o Relationships:

▪ Admin ↔ Teachers (one-to-many)

▪ Teachers ↔ Classes ↔ Students (many-to-many)

▪ Students ↔ Parents (one-to-one)

2. API Development

o Authentication:

▪ Role-based JWT (JSON Web Tokens) for secure access control.

o Endpoints:

▪ Super Admin:

▪ /createAdmin, /deleteAdmin, /getAllData

▪ Admin:

▪ /createTeacher, /deleteTeacher, /assignClasses,


/manageAdmissions, /manageFees
▪ Clerk:

▪ /generateBonafide, /generateScoreCard, /generateIDCard,


/feesDetails

▪ Teacher:

▪ /takeAttendance, /requestLeave, /uploadMaterial,


/sendBroadcast

▪ Parent:

▪ /viewStats, /payFees, /uploadDocuments, /chat,


/requestLeave

3. Features

o Audit Logs: Track all changes made by each role for accountability.

o Real-time Chat: Enable socket-based chat for parents and teachers.

o Role-based Dashboards: Provide tailored APIs for different user


interfaces.

Frontend (Flutter)

1. Screens by Role

o Super Admin:

▪ Dashboard: Admin statistics, total users, system health.

▪ Manage Admins: Create, edit, delete admin profiles.

▪ System Logs: View all activity logs.

o Admin:

▪ Dashboard: Teacher and student stats, admissions pending.

▪ Manage Teachers: List, add, assign classes.

▪ Admissions: View applications, approve/reject, manage fees.

o Clerk:

▪ Dashboard: Pending tasks, document generation.

▪ Generate Documents: Bonafide, ID cards, scorecards.

o Teacher:

▪ Dashboard: Classes handled, attendance stats, milestones.


▪ Attendance: Mark attendance for multiple classes.

▪ Material: Upload teaching material.

▪ Broadcast: Send announcements to a class.

o Parent:

▪ Dashboard: Child's attendance, performance.

▪ Admissions: Fill forms, upload documents.

▪ Fees: Pay fees and view receipts.

▪ Chat: Message teachers.

▪ Leave: Request leave for child.

2. UI Features

o Responsive Design: For mobile, tablet, and desktop.

o Role-based Themes: Different themes for different roles.

o Push Notifications: For announcements, payment reminders, and


updates.

o Offline Mode: Save attendance and other data locally and sync later.

3. Components

o Reusable widgets: Buttons, cards, tables, and forms.

o Modular navigation: Bottom navigation and drawer for role-based access.

Additional Features

1. Parent-Teacher Meeting Scheduler:

o Allow parents to book time slots for meetings.

o Notify teachers and parents.

2. AI-Based Insights:

o Predictive analytics for student performance based on attendance and


scores.

3. Multi-Language Support:

o Include support for regional languages.

4. Calendar Integration:
o Integrate class schedules, holidays, and exam dates.

5. Analytics for Super Admin:

o Reports on system usage, student performance, and fee collection.

6. Data Export/Import:

o Export attendance, scores, and other data in Excel or PDF formats.

7. Fee Reminder System:

o Automatic reminders to parents for due payments.

8. Teacher Feedback:

o Allow parents to provide feedback for teachers.

9. Emergency Alerts:

o Enable the admin to send urgent alerts to all users.

Tech Stack Summary

• Backend: PHP (CodeIgniter/Laravel) + MySQL

• Frontend: Flutter

• API Communication: RESTful APIs with JSON

• Authentication: Role-based JWT

• Hosting: Cloud-based (e.g., AWS, DigitalOcean, or shared hosting like Hostinger)

• Real-time Features: WebSocket for chat and notifications


Database Schema

1. Users Table

Stores user information and roles for Super Admin, Admin, Clerk, Teacher, and Parent.

Field Type Description

user_id Unique identifier for each


INT (AUTO_INCREMENT)
(PK) user.

name VARCHAR(100) Full name of the user.

email VARCHAR(150) Unique email for login.

password VARCHAR(255) Encrypted password.

ENUM('super_admin', 'admin', 'clerk', 'teacher',


role Role of the user.
'parent')

phone VARCHAR(15) Contact number.

created_at TIMESTAMP Account creation date.

updated_at TIMESTAMP Last update date.

2. Students Table

Stores student details.

Field Type Description

student_id (PK) INT (AUTO_INCREMENT) Unique identifier for each student.

name VARCHAR(100) Full name of the student.

dob DATE Date of birth.

class_id (FK) INT References Classes table.

parent_id (FK) INT References Users table (parent role).

admission_date DATE Admission date.

status ENUM('active', 'inactive') Current status.


3. Classes Table

Stores class details.

Field Type Description

class_id (PK) INT (AUTO_INCREMENT) Unique identifier for each class.

name VARCHAR(50) Class name (e.g., Grade 10).

section VARCHAR(10) Section (e.g., A, B, C).

teacher_id (FK) INT References Users table (teacher role).

subject_list JSON List of subjects for the class.

4. Attendance Table

Tracks attendance for students.

Field Type Description

attendance_id (PK) INT (AUTO_INCREMENT) Unique identifier.

student_id (FK) INT References Students table.

class_id (FK) INT References Classes table.

date DATE Date of attendance.

status ENUM('present', 'absent') Attendance status.

5. Fees Table

Handles student fee details.

Field Type Description

fee_id (PK) INT (AUTO_INCREMENT) Unique identifier.

student_id (FK) INT References Students table.

total_amount DECIMAL(10, 2) Total fee amount.

amount_paid DECIMAL(10, 2) Amount paid.


Field Type Description

due_date DATE Fee due date.

status ENUM('paid', 'unpaid') Payment status.

6. Study Material Table

Stores teaching material.

Field Type Description

material_id (PK) INT (AUTO_INCREMENT) Unique identifier.

class_id (FK) INT References Classes table.

teacher_id (FK) INT References Users table (teacher role).

title VARCHAR(100) Title of the material.

description TEXT Brief description.

file_url VARCHAR(255) URL of the material file.

7. Leave Requests Table

Tracks leave requests for teachers and students.

Field Type Description

leave_id (PK) INT (AUTO_INCREMENT) Unique identifier.

user_id (FK) INT References Users table.

reason TEXT Reason for the leave.

start_date DATE Leave start date.

end_date DATE Leave end date.

status ENUM('pending', 'approved', 'rejected') Leave status.

8. Chat Table

Manages chat messages between users.


Field Type Description

chat_id (PK) INT (AUTO_INCREMENT) Unique identifier.

sender_id (FK) INT References Users table (sender).

receiver_id (FK) INT References Users table (receiver).

message TEXT Message content.

sent_at TIMESTAMP Message sent time.

9. Notifications Table

Handles system-wide notifications.

Field Type Description

notification_id (PK) INT (AUTO_INCREMENT) Unique identifier.

user_id (FK) INT References Users table (recipient).

title VARCHAR(100) Notification title.

message TEXT Notification content.

created_at TIMESTAMP Notification creation time.

Relationships

• Users ↔ Students: One parent linked to one student (1:1).

• Users ↔ Classes ↔ Students: Many-to-many for teachers and classes.

• Classes ↔ Study Material: One class can have multiple study materials (1:N).

• Users ↔ Leave Requests: Users (teachers or parents) can make multiple leave
requests (1:N).

• Users ↔ Chat: Each user can send messages to others (N:N).

Enhanced Features

1. Attendance Analytics: Auto-generate attendance percentage for students.


2. Fee Payment Gateway: Integrate Razorpay, PayPal, or Stripe for online
payments.

3. PDF Generation: Generate and download documents (bonafide, scorecards,


receipts).

4. Live Class Streaming: Integrate Zoom or Google Meet for online classes.

5. Mobile Notifications: Firebase Cloud Messaging for updates.

6. Custom Roles: Add optional custom roles if needed in the future.


Here’s a detailed API implementation plan for your school management system,
focusing on the backend (PHP with MySQL) and how it integrates with the Flutter
frontend.

API Implementation Plan

1. Authentication & Authorization

• Endpoints:

1. POST /auth/login: Authenticate user and generate a token.

2. POST /auth/register: Register new users (used by Super Admin for


Admins, Admins for Teachers, etc.).

3. POST /auth/logout: Invalidate token.

4. GET /auth/verify: Verify token validity.

• Features:

o Use JWT (JSON Web Tokens) for secure authentication.

o Role-based access control (Super Admin, Admin, Clerk, Teacher, Parent).

2. User Management

• Endpoints:

1. GET /users: Fetch all users (role-based filters).

2. GET /users/{id}: Fetch specific user details.

3. POST /users: Create a new user.

4. PUT /users/{id}: Update user details.

5. DELETE /users/{id}: Delete a user.

• Key Operations:

o Super Admin creates/deletes Admins.

o Admin creates/deletes Teachers and Clerks.

3. Class & Subject Management

• Endpoints:
1. GET /classes: List all classes.

2. POST /classes: Create a new class.

3. GET /classes/{id}: Fetch class details (with assigned teachers and


students).

4. PUT /classes/{id}: Update class details.

5. DELETE /classes/{id}: Delete a class.

6. POST /classes/{id}/subjects: Add subjects to a class.

• Key Operations:

o Admin assigns classes to Teachers.

o Teachers manage subjects in their classes.

4. Student Management

• Endpoints:

1. GET /students: List all students (filter by class).

2. GET /students/{id}: Fetch specific student details.

3. POST /students: Add a new student.

4. PUT /students/{id}: Update student details.

5. DELETE /students/{id}: Remove a student.

• Key Operations:

o Admin and Clerk manage student admissions.

o Parent views their child’s details.

5. Attendance Management

• Endpoints:

1. POST /attendance: Mark attendance for a class.

2. GET /attendance: Fetch attendance records (filter by class, student,


date).

3. GET /attendance/stats/{student_id}: Attendance analytics for a student.

• Key Operations:
o Teachers take attendance.

o Parents view their child’s attendance stats.

6. Fee Management

• Endpoints:

1. GET /fees: List all fee records.

2. GET /fees/{student_id}: Fetch fee details for a student.

3. POST /fees/pay: Record a fee payment.

4. PUT /fees/{id}: Update fee details.

• Integration:

o Payment Gateway APIs like Razorpay/Stripe.

7. Study Material

• Endpoints:

1. GET /materials: List study materials (filter by class).

2. POST /materials: Upload new material.

3. DELETE /materials/{id}: Delete material.

• Key Operations:

o Teachers upload materials.

o Parents and students access materials.

8. Leave Management

• Endpoints:

1. POST /leave: Request leave.

2. GET /leave: Fetch all leave requests (filter by status and user).

3. PUT /leave/{id}: Approve/Reject leave.

• Key Operations:

o Teachers request leave from Admin.


o Parents request leave for students.

9. Chat System

• Endpoints:

1. POST /chat/send: Send a message.

2. GET /chat/{user_id}: Fetch chat history with a specific user.

• Key Operations:

o Secure real-time communication using WebSocket or polling.

10. Notifications

• Endpoints:

1. GET /notifications: Fetch notifications for a user.

2. POST /notifications: Send a notification.

• Key Operations:

o Push notifications to Flutter frontend via Firebase.

Backend Architecture

Tech Stack

• PHP Framework: CodeIgniter or Laravel.

• Database: MySQL.

• API Documentation: Swagger/OpenAPI.

• Authentication: JWT.

Frontend API Integration in Flutter

Packages:

1. http: For REST API calls.

2. provider or riverpod: For state management.

3. shared_preferences: For storing JWT tokens.


4. firebase_messaging: For push notifications.

Example: Fetching Classes

dart

Copy code

Future<List<Class>> fetchClasses(String token) async {

final response = await http.get(

Uri.parse('https://yourapi.com/classes'),

headers: {

'Authorization': 'Bearer $token',

},

);

if (response.statusCode == 200) {

final List<dynamic> data = jsonDecode(response.body);

return data.map((json) => Class.fromJson(json)).toList();

} else {

throw Exception('Failed to load classes');

You might also like