Student Management System in PHP & MySQL — Dynamic Fields, CSV Import/Export | Free Source Code
Coding Cush
0:00 / 0:00
Student Management System in PHP & MySQL — Dynamic Fields, CSV Import/Export | Free Source Code
24 просмотра · 2 дн. назад
Coding Cush
1,38 тыс. подписчиков
24 просмотра · 2 дн. назад
A complete Student Management System built in PHP and MySQL — with secure login, full student records, advanced filters, CSV import & export, and a Dynamic Fields module that lets the admin add new fields to the student registration form without writing any code. This is a project demo (no voice-over) — watch the app in action, then download the free source code and run it on XAMPP in minutes.
What is a student management system?
It's a web application a school or college uses to store and manage student records — admission number, personal details, course and section, guardian details, photo and status. Staff can add, edit and search students, import or export them as CSV, and print a student profile. An admin can also change what information the form collects, using Dynamic Fields.
What are Dynamic Fields?
Dynamic Fields let the admin create extra form fields from the browser — text, number, email, date, select, textarea, radio or checkbox. A new field appears automatically on the Add/Edit Student form, the student profile page, the students list, the CSV export and the CSV import template. The values are stored in a separate student_field_values table, so you never have to run ALTER TABLE or change any code.
⏱ Chapters
0:00 Intro
0:10 Project overview — what it does
0:48 Secure login — CSRF tokens & hashed passwords
1:31 Dashboard — live stats and course chart
2:00 Students list + 8 advanced filters
3:10 Student profile page (print-ready)
3:44 Dynamic Fields — change the form without code
4:48 Add a student — validation & photo upload
6:29 Edit & delete (admin only)
7:10 CSV import with a full skip report
7:58 CSV export — exactly what you filtered
8:32 Roles & permissions — Admin vs Staff
9:21 Under the hood — code & database
10:21 Setup in 2 minutes
✅ Features
• Secure login & registration — password_hash(), CSRF token on every form, session regeneration
• Two roles: Admin and Staff — admin-only Dynamic Fields, System Users and delete
• Full student CRUD with photo upload (JPG/PNG/WEBP, max 2 MB)
• Auto-generated admission number (STU2026XXXX) with duplicate email and admission-no checks
• Advanced filters: keyword search, course, section, gender, status, admission date range, sorting and pagination
• Dynamic Fields module — 8 field types, show-in-list and display order, no code needed
• CSV import with header mapping, duplicate skip and a row-by-row report of what was skipped and why
• CSV export that respects the exact filters you applied, including dynamic-field columns
• Downloadable CSV template and a ready sample CSV
• Student profile page with photo, age badge and print-friendly CSS
• Dashboard with live counts and a course-wise chart
🛠 Tech stack
Core PHP 8, MySQL / MariaDB, PDO prepared statements, HTML5, CSS3, vanilla JavaScript. No framework and no Composer — runs on XAMPP, WAMP, LAMP or any shared hosting.
📦 How to run (2 minutes)
1. Download the source code (link below)
2. Import database.sql into phpMyAdmin — it creates the database, tables, demo users and sample data
3. Put the folder in htdocs (XAMPP) or public_html (hosting)
4. Edit config/database.php if your MySQL user isn't root with an empty password
5. Login as Admin: admin@example.com / Admin@123 — Staff: staff@example.com / Staff@123
❓ FAQ
Q: Is the source code free?
A: Yes — the full source code is free to download and use in your college project or portfolio.
Q: Can I use this as a final year project?
A: Yes. It covers authentication, role-based access, CRUD, validation, file upload, CSV import/export and a dynamic form builder — more than enough for a BCA, MCA, BSc IT or B.Tech final year project.
Q: How do dynamic fields work without changing the database?
A: Each custom field is a row in the custom_fields table, and each student's answer is a row in student_field_values (student_id, field_id, field_value). Adding a field inserts one row, so the students table never changes.
Q: Can staff delete students?
A: No. Deleting is admin-only and enforced on the server with require_admin(), so a staff member who opens an admin URL directly gets a 403 Forbidden page.
Q: Is it secure?
A: Every query uses PDO prepared statements, passwords are hashed with password_hash(), every form carries a CSRF token, output is escaped against XSS, and the uploads folder blocks PHP execution.
Q: Does it work on shared hosting like Hostinger?
A: Yes. It's core PHP and MySQL with no build step — upload the folder, import the SQL file and update config/database.php.
⬇ Download source code + full tutorial: https://codingcush.com/advanced-stude...
🔔 More free PHP projects with source code — Subscribe to CodingCush and check the PHP Projects playlist.
#PHP #MySQL #PHPProject #StudentManagementSystem #FinalYearProject #FreeSourceCode #WebDevelopment #CodingCush #PHPMySQLProject #CRUD #AdminPanel #CSVImport