Skip to content

MuffledTech/notes-management-system

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

5 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

πŸ“š Notes Management System (PHP + AntiGravity)

PHP MySQL License

A folder-based notes management system built with PHP and MySQL for schools and institutions. Supports role-based access, secure multi-file uploads, and scalable structure.


πŸ“Œ Table of Contents

  1. Features
  2. User Roles & Permissions
  3. Notes System
  4. Information Page
  5. Member List
  6. Database Schema
  7. Folder Structure
  8. Security & Validation
  9. Scalability
  10. Installation
  11. Technology Stack
  12. Future Enhancements
  13. License

🌟 Features

  • Secure login (Username + 4-digit PIN)
  • Role-based access: Admin / User
  • Upload multiple files at once
  • Edit / delete own notes
  • Folder-based structure: Class β†’ Subject β†’ Lesson β†’ Files
  • Search notes by Subject
  • Admin can manage users, notes, and system structure
  • Scalable for ~450 users per institution

πŸ‘€ User Roles & Permissions

Admin

  • Create/manage Classes, Subjects, Lessons
  • Approve, block, or remove users
  • Upload/update Information Page (text + banner)
  • View/delete all notes
  • Manage system structure

User

  • Secure login with Username + PIN
  • Upload multiple files
  • Edit/delete own notes
  • View notes by Class β†’ Subject β†’ Lesson
  • Download all notes from a lesson
  • View Information Page
  • View Members List

πŸ“ Notes System

  • Folder-based structure
  • Unlimited file size
  • Allowed formats: PDF, JPG, PNG
  • Duplicate filenames auto-overwrite
  • Metadata stored in MySQL:
Column Description
lesson_id Lesson reference
uploaded_by User ID of uploader
file_name Original file name
file_path Server path
uploaded_at Timestamp
  • Users can edit/delete their own files
  • Search functionality: Search by Subject β†’ All Lessons

πŸ“„ Information Page

  • Single page for all users
  • Admin-only editing
  • Content: Text + Banner Image
  • Stored in MySQL

πŸ‘₯ Member List

  • Shows: Username + Class
  • Admin can remove/block users
  • Users can only view

πŸ—„ Database Schema (MySQL)

Classes

CREATE TABLE classes (
    id INT AUTO_INCREMENT PRIMARY KEY,
    name VARCHAR(255) NOT NULL
);

Subjects

CREATE TABLE subjects (
    id INT AUTO_INCREMENT PRIMARY KEY,
    class_id INT NOT NULL,
    name VARCHAR(255) NOT NULL,
    FOREIGN KEY (class_id) REFERENCES classes(id)
);

Lessons

CREATE TABLE lessons (
    id INT AUTO_INCREMENT PRIMARY KEY,
    subject_id INT NOT NULL,
    name VARCHAR(255) NOT NULL,
    FOREIGN KEY (subject_id) REFERENCES subjects(id)
);

Users

CREATE TABLE users (
    id INT AUTO_INCREMENT PRIMARY KEY,
    username VARCHAR(100) NOT NULL UNIQUE,
    class_id INT NOT NULL,
    pin_hash VARCHAR(255) NOT NULL,
    role ENUM('admin','user') NOT NULL DEFAULT 'user',
    status ENUM('pending','active') NOT NULL DEFAULT 'pending',
    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
    FOREIGN KEY (class_id) REFERENCES classes(id)
);

Notes

CREATE TABLE notes (
    id INT AUTO_INCREMENT PRIMARY KEY,
    lesson_id INT NOT NULL,
    uploaded_by INT NOT NULL,
    file_name VARCHAR(255) NOT NULL,
    file_path VARCHAR(500) NOT NULL,
    uploaded_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
    FOREIGN KEY (lesson_id) REFERENCES lessons(id),
    FOREIGN KEY (uploaded_by) REFERENCES users(id)
);

Information Page

CREATE TABLE information_page (
    id INT AUTO_INCREMENT PRIMARY KEY,
    title VARCHAR(255),
    content TEXT,
    image_path VARCHAR(500),
    updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
);

πŸ“ Folder Structure

uploads/
 └── class_name/
      └── subject_name/
           └── lesson_name/
                └── uploaded_files
  • Users can upload multiple files
  • Duplicate filenames auto-overwrite
  • Validated formats: PDF / JPG / PNG

πŸ”’ Security & Validation

  • SQL Injection prevention (prepared statements)
  • PIN hashed (password_hash())
  • Role-based access control
  • Session management + timeout
  • File type validation
  • Users can only edit/delete their own notes

πŸš€ Scalability

  • Supports ~450 users per institution
  • Extendable for multiple schools, +2 level, Bachelor level

βš™οΈ Installation

  1. Clone the repository:
git clone https://github.com/<username>/notes-management-system.git
  1. Import MySQL database schema
  2. Configure credentials in config.php
  3. Upload to PHP-enabled server
  4. Create the first Admin user

πŸ›  Technology Stack

  • Backend: PHP (AntiGravity framework)
  • Database: MySQL
  • Frontend: HTML5, CSS3, JS
  • File Storage: Folder-based uploads
  • Authentication: Username + 4-digit PIN

πŸ’‘ Future Enhancements

  • Multi-school / multi-institution support
  • Extended file type support
  • Lesson-level access permissions
  • Notifications on new uploads

πŸ“„ License

MIT License Β© 2026

About

A secure, folder-based Notes Management System built with PHP and MySQL. Supports role-based access, multi-file uploads, searchable lessons, and scalable structure for schools and institutions.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors