Skip to content

Is-haka/oass

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

39 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

OASS - Online Assignment Submission System

OASS Logo

A comprehensive web-based platform for streamlining academic assignment management

Features β€’ Tech Stack β€’ Installation β€’ Usage β€’ Database β€’ Screenshots β€’ Contributing


πŸ“‹ Overview

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.

✨ Features

πŸ” Secure Authentication

  • 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

πŸ“ Assignment Management

  • 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)

πŸ“Š Grading & Feedback

  • Lecturers can review and grade submitted assignments
  • Students receive grades and feedback through the system
  • Track submission status (pending, graded, late)

πŸ“ˆ Performance Reporting

  • Generate performance reports per student
  • Track assignment submission history
  • View grades across courses and modules

⏰ Deadline Management

  • Set specific due dates for each assignment
  • Filter assignments by pending/submitted status
  • Visual indicators for approaching deadlines

πŸ‘€ User Profile Management

  • Profile picture upload
  • Personal information management
  • Department and course association

πŸ›  Tech Stack

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
Email PHPMailer
PDF Generation FPDF

πŸ“ Project Structure

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

πŸš€ Installation

Prerequisites

  • PHP 8.0 or higher
  • MySQL 8.0 or higher
  • Apache/Nginx web server
  • Composer (optional, for dependency management)

Step-by-Step Setup

  1. Clone the repository

    git clone https://github.com/Is-haka/oass.git
    cd oass
  2. Create the database

    mysql -u root -p -e "CREATE DATABASE oass;"
  3. Import the database schema

    mysql -u root -p oass < "db/db files/18.11.2023 backup [data undetermined]/oass.sql"
  4. Configure database connection

    Edit db/db.php with your database credentials:

    <?php
    $con = mysqli_connect("127.0.0.1", "your_username", "your_password", "oass");
    if(!$con) {
        echo "CONNECTION FAILED";
    }
    ?>
  5. Configure PHPMailer (for password reset)

    Update the SMTP settings in auth/reset.php with your email provider credentials.

  6. Set up your web server

    Point your web server's document root to the oass directory, or access via:

    http://localhost/oass/
    
  7. Set file permissions

    chmod 755 dashboard/lecturer/assaginments/
    chmod 755 dashboard/*/profile/

πŸ‘₯ Usage

Default User Roles

Role Role ID Access Level
Admin 1 Full system access
Lecturer 2 Assignment & grading management
Student 3 View & submit assignments

Accessing the System

  1. Navigate to the application URL
  2. Click "Log In" on the homepage
  3. Enter your credentials (email/admission number and password)
  4. You'll be redirected to your role-specific dashboard

Admin Functions

  • Register new students and lecturers
  • View and manage all users
  • Edit/delete user accounts

Lecturer Functions

  • Post new assignments with files and instructions
  • View submitted assignments
  • Grade student submissions
  • Process and record results

Student Functions

  • View available assignments for your course/level
  • Download assignment files and instructions
  • Submit completed assignments
  • View grades and feedback

πŸ—„ Database Schema

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

Entity Relationship

users ─────┬──── students ──── submit_assignment
           β”‚         β”‚                β”‚
           β”‚         └─────────────────
           β”‚                          β”‚
           └──── lecturer ──── post_assignment
                    β”‚                β”‚
                    β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
                           β”‚
              β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
              β”‚            β”‚            β”‚
          courses      modules      levels
              β”‚            β”‚            β”‚
              β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
                           β”‚
                     departments

πŸ“Έ Screenshots

Landing Page

The homepage features a modern slider showcasing the system's purpose, followed by feature highlights and recent assignment posts.

Login Page

Clean, responsive login interface supporting both email and admission number authentication with real-time input validation.

Admin Dashboard

Overview of total users, students, and lecturers with quick links to user management and registration pages.

Lecturer Dashboard

Assignment management interface with options to post new assignments, view submissions, and grade student work.

Student Dashboard

Personalized view of pending assignments, submission forms, and grade reports.

πŸ”’ Security Features

  • Password Hashing β€” All passwords are hashed using password_hash() with bcrypt
  • Input Sanitization β€” User inputs are sanitized using mysqli_real_escape_string(), strip_tags(), and trim()
  • Session Security β€” Role-based session validation on protected pages
  • File Upload Validation β€” Extension and size validation for uploaded files

🀝 Contributing

Contributions are welcome! Here's how you can help:

  1. Fork the repository
  2. Create a feature branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -m 'Add amazing feature')
  4. Push to the branch (git push origin feature/amazing-feature)
  5. Open a Pull Request

Development Guidelines

  • Follow PSR-12 coding standards for PHP
  • Use meaningful commit messages
  • Test thoroughly before submitting PRs
  • Update documentation as needed

πŸ“ License

This project is open source and available under the MIT License.

πŸ‘¨β€πŸ’» Author

Is-haka


Made with ❀️ for the academic community

Β© 2023 OASS - Online Assignment Submission System

About

Online Assignment Submission System

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors