A comprehensive web-based platform for streamlining academic assignment management
Features β’ Tech Stack β’ Installation β’ Usage β’ Database β’ Screenshots β’ Contributing
OASS (Online Assignment Submission System) is a web-based application designed to digitize and streamline the assignment submission process for educational institutions. It provides a centralized platform where:
- Students can view, download, and submit assignments online
- Lecturers/Professors can post assignments, set deadlines, and grade submissions
- Administrators can manage users and oversee the entire system
The system enhances efficiency in assignment management, facilitates timely feedback, and encourages punctuality through deadline enforcement.
- Role-based access control (Admin, Lecturer, Student)
- Secure password hashing using PHP's
password_hash() - Session management for authenticated users
- Password reset functionality via email
- Post Assignments β Lecturers can create assignments with:
- Title and detailed instructions
- Attachment files (PDF, DOCX, PPTX, etc.)
- Post date and due date
- Course, level, and module targeting
- Submit Assignments β Students can upload their work in multiple formats
- File Validation β Supports various file types with size limits (5MB max)
- Lecturers can review and grade submitted assignments
- Students receive grades and feedback through the system
- Track submission status (pending, graded, late)
- Generate performance reports per student
- Track assignment submission history
- View grades across courses and modules
- Set specific due dates for each assignment
- Filter assignments by pending/submitted status
- Visual indicators for approaching deadlines
- Profile picture upload
- Personal information management
- Department and course association
| Category | Technology |
|---|---|
| Backend | PHP 8.x |
| Database | MySQL 8.x |
| Frontend | HTML5, CSS3, JavaScript |
| CSS Framework | Bootstrap 4 |
| Icons | Font Awesome |
| Animations | Animate.css, AOS (Animate on Scroll) |
| Carousel | Swiper.js |
| PHPMailer | |
| PDF Generation | FPDF |
oass/
βββ assets/ # Static assets
β βββ bootstrap/ # Bootstrap CSS/JS
β βββ css/ # Custom stylesheets
β βββ favicon/ # Favicon files
β βββ fonts/ # Font files (Font Awesome)
β βββ img/ # Images
β βββ js/ # JavaScript files
βββ auth/ # Authentication module
β βββ login.php # User login
β βββ log.php # Session handler/redirector
β βββ reset.php # Password reset
βββ dashboard/ # User dashboards
β βββ admin/ # Admin panel
β β βββ index.php # Admin dashboard
β β βββ users.php # User management
β β βββ student_register.php
β β βββ lecturer_register.php
β β βββ profile.php
β βββ lecturer/ # Lecturer panel
β β βββ index.php # Lecturer dashboard
β β βββ post.php # Post assignments
β β βββ marking.php # Grade assignments
β β βββ result_processing.php
β β βββ assaginments/ # Uploaded assignment files
β β βββ profile.php
β βββ students/ # Student panel
β βββ index.php # Student dashboard
β βββ assignments.php # View assignments
β βββ submission.php # Submit assignments
β βββ result.php # View grades
β βββ profile.php
βββ db/ # Database files
β βββ db.php # Database connection
β βββ db files/ # SQL backup files
βββ fpdf/ # FPDF library
βββ PHPMailer-master/ # PHPMailer library
βββ public/ # Public pages
β βββ about.php # About page
β βββ contacts.php # Contact page
βββ index.php # Landing page
- PHP 8.0 or higher
- MySQL 8.0 or higher
- Apache/Nginx web server
- Composer (optional, for dependency management)
-
Clone the repository
git clone https://github.com/Is-haka/oass.git cd oass -
Create the database
mysql -u root -p -e "CREATE DATABASE oass;" -
Import the database schema
mysql -u root -p oass < "db/db files/18.11.2023 backup [data undetermined]/oass.sql"
-
Configure database connection
Edit
db/db.phpwith your database credentials:<?php $con = mysqli_connect("127.0.0.1", "your_username", "your_password", "oass"); if(!$con) { echo "CONNECTION FAILED"; } ?>
-
Configure PHPMailer (for password reset)
Update the SMTP settings in
auth/reset.phpwith your email provider credentials. -
Set up your web server
Point your web server's document root to the
oassdirectory, or access via:http://localhost/oass/ -
Set file permissions
chmod 755 dashboard/lecturer/assaginments/ chmod 755 dashboard/*/profile/
| Role | Role ID | Access Level |
|---|---|---|
| Admin | 1 | Full system access |
| Lecturer | 2 | Assignment & grading management |
| Student | 3 | View & submit assignments |
- Navigate to the application URL
- Click "Log In" on the homepage
- Enter your credentials (email/admission number and password)
- You'll be redirected to your role-specific dashboard
- Register new students and lecturers
- View and manage all users
- Edit/delete user accounts
- Post new assignments with files and instructions
- View submitted assignments
- Grade student submissions
- Process and record results
- View available assignments for your course/level
- Download assignment files and instructions
- Submit completed assignments
- View grades and feedback
The system uses a relational database with the following main tables:
| Table | Description |
|---|---|
users |
All system users (admins, lecturers, students) |
students |
Student-specific data (admission number, course, level) |
lecturer |
Lecturer-specific data (department, module) |
departments |
Academic departments |
courses |
Academic programs/courses |
levels |
Academic levels (NTA L4, L5, L6, L7, L8) |
modules |
Course modules/subjects |
post_assignment |
Posted assignments |
submit_assignment |
Student submissions |
course_work_results |
Grading records |
roles |
User role definitions |
staff_role |
Staff position types |
gender |
Gender reference table |
users ββββββ¬ββββ students ββββ submit_assignment
β β β
β ββββββββββββββββββ€
β β
βββββ lecturer ββββ post_assignment
β β
ββββββββββββββββββ
β
ββββββββββββββΌβββββββββββββ
β β β
courses modules levels
β β β
ββββββββββββββ΄βββββββββββββ
β
departments
The homepage features a modern slider showcasing the system's purpose, followed by feature highlights and recent assignment posts.
Clean, responsive login interface supporting both email and admission number authentication with real-time input validation.
Overview of total users, students, and lecturers with quick links to user management and registration pages.
Assignment management interface with options to post new assignments, view submissions, and grade student work.
Personalized view of pending assignments, submission forms, and grade reports.
- Password Hashing β All passwords are hashed using
password_hash()with bcrypt - Input Sanitization β User inputs are sanitized using
mysqli_real_escape_string(),strip_tags(), andtrim() - Session Security β Role-based session validation on protected pages
- File Upload Validation β Extension and size validation for uploaded files
Contributions are welcome! Here's how you can help:
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
- Follow PSR-12 coding standards for PHP
- Use meaningful commit messages
- Test thoroughly before submitting PRs
- Update documentation as needed
This project is open source and available under the MIT License.
Is-haka
- GitHub: @Is-haka
- LinkedIn: is-haka
- Website: is-haka.dev
Made with β€οΈ for the academic community
Β© 2023 OASS - Online Assignment Submission System