Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

2 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Smart Memo Tracking System

A comprehensive web-based memo management system built with PHP and MySQL for educational institutions. This system allows students, staff, and administrators to create, manage, track, and approve various types of memos and requests.

πŸš€ Features

Core Functionality

  • User Management: Role-based access control (Student, Staff, Admin)
  • Memo Creation: Template-based memo creation with file attachments
  • Workflow Management: Automated approval workflows based on memo type
  • Real-time Tracking: Visual workflow progress tracking
  • Notification System: Email and in-app notifications
  • Export System: Export data in JSON, CSV, Excel, and PDF formats
  • File Management: Secure file upload and download system

User Roles & Permissions

Students

  • Create and submit memos/requests
  • Track memo status and progress
  • View personal memo history
  • Receive notifications on status updates
  • Download approved memo documents

Staff

  • Review and approve/reject assigned memos
  • Add comments and feedback
  • Manage department-specific requests
  • View analytics and reports
  • Create internal memos

Administrators

  • Full system access and management
  • User account management
  • System configuration
  • Comprehensive reporting
  • Data export capabilities

πŸ› οΈ Technology Stack

  • Backend: PHP 7.4+
  • Database: MySQL 5.7+
  • Frontend: HTML5, CSS3 (Tailwind CSS), JavaScript (Alpine.js)
  • Charts: Chart.js
  • Server: Apache (XAMPP compatible)

πŸ“‹ Requirements

  • PHP 7.4 or higher
  • MySQL 5.7 or higher
  • Apache Web Server
  • XAMPP (recommended for local development)
  • Modern web browser

πŸ”§ Installation

Using XAMPP (Recommended)

  1. Download and Install XAMPP

  2. Clone/Download the Project ```bash git clone [repository-url]

    OR download and extract the ZIP file

    ```

  3. Move to XAMPP Directory

    • Copy the project folder to C:\xampp\htdocs\smart-memo-system\ (Windows)
    • Or /opt/lampp/htdocs/smart-memo-system/ (Linux)
  4. Database Setup

    • Open phpMyAdmin: http://localhost/phpmyadmin
    • Create a new database named memo_system
    • Import the SQL file: database/schema.sql
  5. Configure Database Connection

    • Edit config/database.php
    • Update database credentials if needed: ```php define('DB_HOST', 'localhost'); define('DB_NAME', 'memo_system'); define('DB_USER', 'root'); define('DB_PASS', ''); ```
  6. Create Upload Directory

    • Create uploads/ folder in the project root
    • Set appropriate permissions (755 or 777)
  7. Access the System

    • Open browser and go to: http://localhost/smart-memo-system/

πŸ‘€ Default Login Credentials

Administrator

  • Username: admin
  • Password: admin123

Staff Member

  • Username: dr.smith
  • Password: admin123

Student

  • Username: john.doe
  • Password: admin123

πŸ“ Project Structure

``` smart-memo-system/ β”œβ”€β”€ config/ β”‚ └── database.php # Database configuration β”œβ”€β”€ includes/ β”‚ β”œβ”€β”€ auth.php # Authentication functions β”‚ β”œβ”€β”€ memo.php # Memo management functions β”‚ β”œβ”€β”€ sidebar.php # Navigation sidebar β”‚ └── header.php # Page header β”œβ”€β”€ database/ β”‚ └── schema.sql # Database schema β”œβ”€β”€ uploads/ # File upload directory β”œβ”€β”€ components/ # Reusable PHP components β”‚ β”œβ”€β”€ dashboards/ β”‚ β”œβ”€β”€ memo/ β”‚ └── ui/ β”œβ”€β”€ login.php # Login page β”œβ”€β”€ dashboard.php # Main dashboard β”œβ”€β”€ create-memo.php # Memo creation β”œβ”€β”€ inbox.php # Memo inbox β”œβ”€β”€ tracking.php # Progress tracking β”œβ”€β”€ view-memo.php # Memo details β”œβ”€β”€ users.php # User management (Admin) β”œβ”€β”€ settings.php # User settings β”œβ”€β”€ notifications.php # Notifications page β”œβ”€β”€ export.php # Data export β”œβ”€β”€ download.php # File download handler β”œβ”€β”€ logout.php # Logout handler └── README.md # This file ```

πŸ” Security Features

  • SQL Injection Protection: Prepared statements throughout
  • XSS Prevention: Input sanitization and output encoding
  • CSRF Protection: Form token validation
  • Role-based Access Control: Granular permissions system
  • Secure File Handling: File type validation and secure storage
  • Session Management: Secure session handling

πŸ“Š Database Schema

The system uses the following main tables:

  • users - User accounts and profiles
  • memos - Memo/request records
  • memo_workflow - Workflow tracking
  • memo_comments - Comments and feedback
  • memo_attachments - File attachments
  • notifications - System notifications
  • user_sessions - Session management

🎨 Customization

Adding New Memo Types

  1. Update the type enum in the memos table
  2. Add workflow template in includes/memo.php
  3. Update form options in create-memo.php

Modifying Workflows

Edit the getWorkflowTemplate() method in includes/memo.php to customize approval workflows for different memo types.

Styling Changes

The system uses Tailwind CSS. Modify the HTML classes or add custom CSS as needed.

πŸ› Troubleshooting

Common Issues

  1. Database Connection Error

    • Check MySQL service is running
    • Verify database credentials in config/database.php
    • Ensure database exists and schema is imported
  2. File Upload Issues

    • Check uploads/ directory exists and has write permissions
    • Verify PHP upload_max_filesize and post_max_size settings
  3. Login Issues

    • Ensure default users are created (check database/schema.sql)
    • Clear browser cache and cookies
    • Check session configuration
  4. Permission Errors

    • Verify file/folder permissions
    • Check Apache configuration
    • Ensure PHP has necessary extensions enabled

πŸ“ˆ Performance Optimization

  • Database indexes are included for optimal query performance
  • File uploads are stored outside web root for security
  • Session cleanup routines prevent session table bloat
  • Pagination implemented for large data sets

πŸ”„ Backup and Maintenance

Regular Backups

  • Database: Export via phpMyAdmin or mysqldump
  • Files: Backup the entire project directory
  • Uploads: Separately backup the uploads folder

Maintenance Tasks

  • Clean old sessions periodically
  • Archive old memos if needed
  • Monitor disk space for uploads
  • Update user passwords regularly

🀝 Contributing

  1. Fork the repository
  2. Create a feature branch
  3. Make your changes
  4. Test thoroughly
  5. Submit a pull request

πŸ“„ License

This project is licensed under the MIT License - see the LICENSE file for details.

πŸ“ž Support

For support and questions:

  • Create an issue in the repository
  • Check the troubleshooting section
  • Review the code documentation

πŸš€ Future Enhancements

  • Email integration for notifications
  • Mobile responsive improvements
  • API endpoints for mobile app
  • Advanced reporting and analytics
  • Integration with external systems
  • Multi-language support

Note: This system is designed for educational institutions but can be adapted for other organizations with similar memo/request management needs. ```

Now let me create a setup script to help with installation:

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages