Skip to content

rij1/Intern_Management_System_Web

Repository files navigation

Intern Management System - Web Application

A role-based Intern Management System built as a web application during an internship with KAAC. The system helps manage the complete internship workflow, including intern registration, application review, task assignment, multi-level approvals, and certificate processing.

Platform: Web Application

Overview

This project is the web version of the Intern Management System. It is designed for organizations that need a structured way to manage interns, departments, approvals, submitted tasks, and internship completion certificates.

The application includes separate dashboards for each user role, allowing interns and administrative users to access only the features relevant to their responsibilities.

Key Features

  • Intern registration and login
  • Email verification using OTP
  • Password reset with OTP verification
  • Role-based access control
  • Separate dashboards for interns, admins, sub-admins, moderators, and super admins
  • Internship application submission with resume upload
  • Department-based internship request management
  • Multi-level approval and rejection workflow
  • Task assignment and task submission tracking
  • Uploaded task file management
  • Certificate request and approval workflow
  • Automatic certificate ID generation through database trigger logic
  • Department management with logo upload
  • Profile management with photo, resume, and signature uploads
  • Email notifications using PHPMailer
  • Spreadsheet support using PhpSpreadsheet

User Roles

Role Description
Intern Applies for internships, updates profile details, submits assigned tasks, and requests certificates.
Moderator Reviews internship requests and task submissions at the moderator level.
Sub-admin Reviews and manages internship workflows after moderator review.
Admin Handles department-level approvals, task decisions, and certificate approval.
Super admin Manages higher-level administrative operations and system oversight.

Tech Stack

Layer Technology
Frontend HTML, CSS, JavaScript, Bootstrap
Backend PHP
Database MySQL / MariaDB
Package Manager Composer
Mail Service PHPMailer
Spreadsheet Library PhpSpreadsheet
QR Code Library phpqrcode

Project Structure

.
|-- api/                  # API endpoints and backend helpers
|-- assets/               # Dashboard and theme assets
|-- assets2/              # Landing page assets
|-- auth/                 # Authentication, OTP, mail, session, and certificate files
|-- dashboard/            # Role-based dashboard pages
|   |-- admin/
|   |-- intern/
|   |-- moderator/
|   |-- subadmin/
|   `-- super_admin/
|-- layouts/              # Shared layout components
|-- pages/                # Additional pages
|-- uploads/              # Uploaded resumes, photos, logos, signatures, and task files
|-- vendor/               # Composer dependencies
|-- index.html            # Public landing page
|-- composer.json         # PHP dependency configuration
|-- internship.sql        # Main database dump
`-- internship2.sql       # Additional database/user seed dump

Requirements

  • PHP 8.1 or later recommended
  • MySQL or MariaDB
  • Composer
  • Apache or another PHP-supported web server
  • XAMPP, WAMP, Laragon, or a similar local server environment

Required PHP extensions may include:

  • pdo_mysql
  • mbstring
  • xml
  • zip
  • gd

Installation and Setup

  1. Move the project folder into your web server directory.

    Example for XAMPP:

    C:\xampp\htdocs\internship
    
  2. Install Composer dependencies.

    composer install
  3. Create a MySQL database.

    CREATE DATABASE internship CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
  4. Import the main database file.

    mysql -u root -p internship < internship.sql

    You can also import internship.sql manually using phpMyAdmin.

  5. Configure the database connection in auth/config.php.

    $host = 'localhost';
    $db   = 'internship';
    $user = 'root';
    $pass = '';
    define('BASE_URL', 'http://localhost/internship');
  6. Configure email settings in auth/mail_config.php.

    Replace the SMTP username, password, sender email, and sender name with your own email account details. If you use Gmail, create an app password and use that instead of your normal account password.

  7. Start Apache and MySQL.

  8. Open the application in your browser.

    http://localhost/internship/
    

Important Routes

Page Route
Landing page /index.html
Sign in /auth/signin.php
Sign up /auth/signup.php
Dashboard router /dashboard/index.php
Intern dashboard /dashboard/intern/index.php
Admin dashboard /dashboard/admin/index.php
Sub-admin dashboard /dashboard/subadmin/index.php
Moderator dashboard /dashboard/moderator/index.php
Super admin dashboard /dashboard/super_admin/index.php

Database Information

The main database file is internship.sql. It creates the core tables used by the application:

  • users
  • department
  • internshiprequest
  • assignments
  • certificate
  • otp_verification
  • sessions
  • session_for_passwordchange

The database dump also includes indexes, foreign key relationships, seed data, and a certificate trigger for generating certificate IDs when certificates are approved.

internship2.sql contains an additional small database/user seed dump. The current application configuration points to the internship database, so internship.sql should be treated as the primary database file.

Upload Directories

The application stores uploaded files in the following folders:

  • uploads/resume/
  • uploads/photo/
  • uploads/tasks/
  • uploads/logos/
  • uploads/admin_sign/

Make sure these directories exist and are writable by the web server.

Security Notes

Before deploying the project, review the following:

  • Replace local database credentials in auth/config.php.
  • Replace SMTP credentials in auth/mail_config.php.
  • Do not commit real passwords, app passwords, or production credentials.
  • Update BASE_URL to match the live domain.
  • Remove unnecessary test users, sessions, OTP records, uploaded files, and sample data.
  • Use HTTPS in production.
  • Validate and restrict uploaded file types and file sizes.
  • Keep Composer dependencies updated.

Troubleshooting

If the database connection fails, check auth/config.php, confirm that MySQL is running, and verify that the internship database exists.

If email verification does not work, check the SMTP configuration in auth/mail_config.php and confirm that your mail provider allows SMTP access.

If uploaded files are not saved, confirm that the required folders inside uploads/ are present and writable.

If a user is redirected to logout, confirm that the user is logged in, the email is verified, and the user role is one of the supported values: intern, admin, subadmin, moderator, or superadmin.

Project Status

This repository contains the web application version of the Intern Management System. A separate desktop version may be maintained in a different project repository.

About

A PHP and MySQL web-based Intern Management System built during an internship with KAAC, featuring role-based dashboards, internship approvals, task tracking, OTP authentication, and certificate management.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors