0% found this document useful (0 votes)
23 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 a detailed database design for managing users, classes, students, teachers, fees, and more. It includes API development for role-based access, real-time chat, and various user interfaces for different roles using Flutter for the frontend. Additional features such as attendance analytics, fee payment integration, and a parent-teacher meeting scheduler are also highlighted, along with a tech stack summary and API implementation plan.
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)
23 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 a detailed database design for managing users, classes, students, teachers, fees, and more. It includes API development for role-based access, real-time chat, and various user interfaces for different roles using Flutter for the frontend. Additional features such as attendance analytics, fee payment integration, and a parent-teacher meeting scheduler are also highlighted, along with a tech stack summary and API implementation plan.
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/ 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


INT (AUTO_INCREMENT)
(PK) each 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',


role Role of the user.
'teacher', 'parent')

phone VARCHAR(15) Contact number.

created_a
TIMESTAMP Account creation date.
t

updated_
TIMESTAMP Last update date.
at

2. Students Table

Stores student details.

Field Type Description

student_id INT Unique identifier for each


(PK) (AUTO_INCREMENT) student.

name VARCHAR(100) Full name of the student.

dob DATE Date of birth.

class_id (FK) INT References Classes table.

References Users table (parent


parent_id (FK) INT
role).

admission_da
DATE Admission date.
te

status ENUM('active', Current status.


Field Type Description

'inactive')

3. Classes Table

Stores class details.

Field Type Description

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

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

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

teacher_id References Users table (teacher


INT
(FK) role).

subject_list JSON List of subjects for the class.

4. Attendance Table

Tracks attendance for students.

Field Type Description

attendance_id INT
Unique identifier.
(PK) (AUTO_INCREMENT)

References Students
student_id (FK) INT
table.

References Classes
class_id (FK) INT
table.

date DATE Date of attendance.

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

5. Fees Table

Handles student fee details.


Field Type Description

INT
fee_id (PK) Unique identifier.
(AUTO_INCREMENT)

student_id References Students


INT
(FK) table.

total_amount DECIMAL(10, 2) Total fee amount.

amount_paid DECIMAL(10, 2) Amount paid.

due_date DATE Fee due date.

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

6. Study Material Table

Stores teaching material.

Field Type Description

material_id INT
Unique identifier.
(PK) (AUTO_INCREMENT)

class_id (FK) INT References Classes table.

teacher_id References Users table (teacher


INT
(FK) 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
INT (AUTO_INCREMENT) Unique identifier.
(PK)

user_id References Users


INT
(FK) table.
Field Type Description

Reason for the


reason TEXT
leave.

start_date DATE Leave start date.

end_date DATE Leave end date.

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

8. Chat Table

Manages chat messages between users.

Field Type Description

INT
chat_id (PK) Unique identifier.
(AUTO_INCREMENT)

sender_id References Users table


INT
(FK) (sender).

receiver_id References Users table


INT
(FK) (receiver).

message TEXT Message content.

sent_at TIMESTAMP Message sent time.

9. Notifications Table

Handles system-wide notifications.

Field Type Description

notification_id INT
Unique identifier.
(PK) (AUTO_INCREMENT)

References Users table


user_id (FK) INT
(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