Hero Screenshot

SIWES Logbook Manager

Educational Management Platform • Workflow Automation • Role-Based Web Application

A digital internship management platform designed to streamline industrial training supervision, daily logbook tracking, and institutional evaluation.

Python Django PostgreSQL Bootstrap AWS EC2 Gunicorn Nginx
Completed
Overview

Digitizing Internship Management

The SIWES Logbook Manager was developed to modernize the management of industrial training programs by replacing paper-based logbooks with a centralized digital platform. SIWES (Students' Industrial Work Experience Scheme) is a critical component of tertiary education, yet its administration often depends on manual documentation, physical signatures, and fragmented communication between students, lecturers, supervisors, and institutional coordinators.

This platform simplifies internship management by allowing every stakeholder — students, industrial supervisors, lecturers, school coordinators, and administrators — to collaborate through one secure system. By eliminating paperwork and automating workflows, the application increases transparency, reduces administrative overhead, and ensures that no logbook entry or evaluation falls through the cracks.

The Problem

Paper, Delays, and Disconnection

Paper Logbooks

Physical logbooks are easily lost, damaged, or forgotten — compromising months of internship records.

Manual Supervision

Lecturers must physically visit internship sites or collect logbooks to review progress, delaying feedback.

Delayed Evaluations

Assessment cycles stretch for weeks due to slow document exchange between supervisors and institutions.

Poor Communication

Students, supervisors, and lecturers lack a shared channel for updates, questions, and feedback.

Administrative Workload

Coordinators manually track hundreds of students, their placements, and completion status across spreadsheets.

Inefficient Approval Process

Multi-step sign-offs require physical presence, creating bottlenecks that delay the entire internship cycle.

The Solution

Centralized Digital Workflow

Digital Daily Logbook

Students submit entries daily through a web interface — timestamped, organized, and never lost.

Supervisor Comments

Industrial supervisors review and comment on logbook entries directly within the platform.

Lecturer Reviews

Academic staff can monitor student progress remotely, providing feedback without site visits.

Approval Workflows

Logbook entries follow configurable approval chains — student → supervisor → lecturer → coordinator.

Evaluation System

Structured evaluation forms with scoring rubrics ensure consistent assessment across all students.

Administrative Dashboard

Coordinators view real-time progress across all students, placements, and completion rates.

User Roles

Stakeholder Collaboration

Student Dashboard

Student

Submit daily logbook entries, track progress, and receive supervisor feedback.

Supervisor Dashboard

Industrial Supervisor

Review student entries, provide comments, and approve weekly reports.

Lecturer Dashboard

Lecturer

Monitor assigned students, review logbook entries, and submit evaluations.

Coordinator Dashboard

School Coordinator

Manage all students, assign supervisors, and oversee the entire internship cycle.

Admin Dashboard

Administrator

Full system control, user management, and institutional configuration.

Features

Core Capabilities

Student Dashboard

Student Dashboard

Personalized overview showing logbook progress, pending reviews, and internship timeline.

Daily Logbook Submission

Daily Logbook Submission

Rich text entries with date tracking, activity descriptions, and attachment support.

Weekly Progress Tracking

Weekly Progress Tracking

Aggregated weekly summaries with supervisor validation and lecturer visibility.

Supervisor Feedback

Supervisor Feedback

Structured comment system with approval flags and notification triggers.

Internship Evaluation

Internship Evaluation

Multi-criteria assessment forms with scoring rubrics and final grade computation.

Administrative Dashboard

Administrative Dashboard

Institution-wide overview with student progress, placement tracking, and reporting.

Engineering

Architecture & Design

Role-Based Access Control

Five distinct user roles — Student, Industrial Supervisor, Lecturer, School Coordinator, and Administrator — each with tailored permissions. Django's authentication framework was extended with custom permission checks at both the view and template levels, ensuring users only see data relevant to their responsibilities.

Workflow Automation

The logbook approval workflow follows a configurable chain: student submits → supervisor reviews → lecturer approves → coordinator finalizes. Each stage updates the entry's status, and invalid state transitions are prevented through business logic in the service layer.

Database Relationships

PostgreSQL models include normalized relationships between students, placements, supervisors, logbook entries, weekly reports, evaluations, and institutional data. Foreign key constraints and indexed queries ensure referential integrity while maintaining query performance.

Data Validation

Validation occurs at multiple layers: client-side JavaScript for immediate feedback, Django form and model validation for business rules, and database constraints as the final safeguard. This layered approach prevents invalid data from entering the system through any path.

Reusable Django Applications

The project is organized into modular Django apps — accounts, logbook, evaluations, reports — each encapsulating its own models, views, and templates. This separation of concerns makes the codebase maintainable and allows components to be reused or extended independently.

Deployment

Production Infrastructure

The application is deployed on AWS EC2, providing a reliable and scalable cloud environment. Nginx serves as a reverse proxy, handling static files, request buffering, and SSL termination. Gunicorn runs the Django application as a WSGI server with multiple worker processes for concurrent request handling.

Static files (CSS, JavaScript, images) are collected and served efficiently by Nginx, reducing application server load. PostgreSQL runs as the production database with regular backups. The deployment follows a standard Unix socket configuration, with environment variables managing sensitive settings like database credentials and secret keys.

This architecture prioritizes reliability, security, and maintainability — keeping the application available while minimizing operational complexity for a single-server deployment.

Development Environment

Local setup with Django development server and SQLite

Production Architecture

AWS EC2 • Nginx • Gunicorn • PostgreSQL

Architecture

System Design

Application Architecture

Django apps, service layer, and template structure

Database ERD

Entity relationships across students, placements, and evaluations

Authentication Flow

Login, role verification, and session management

Approval Workflow

Student → Supervisor → Lecturer → Coordinator chain

Logbook Submission Flow

Daily entry creation through approval lifecycle

Deployment Architecture

AWS EC2, Nginx, Gunicorn, and static file serving

Tech Stack

Technology Choices

Backend — Django

Chosen for its mature ORM, built-in admin interface, authentication system, and rapid development capabilities. Django's app structure naturally supports the modular design required for managing multiple user roles and workflows.

Frontend — Bootstrap + HTML/CSS/JS

Bootstrap provides a responsive foundation while custom CSS and JavaScript handle role-specific UI logic and form interactions.

Database — PostgreSQL

Selected for its robustness, support for complex queries, referential integrity, and production reliability. Handles the relational data model with multiple interconnected entities.

Deployment — AWS EC2, Nginx, Gunicorn

AWS EC2 provides a flexible cloud server. Nginx serves as a high-performance reverse proxy and static file server. Gunicorn manages Django application processes with worker concurrency.

Infrastructure

Linux-based server administration, environment variable management, and automated backup strategies ensure operational stability.

Developer Tools

Git for version control, Django's testing framework, and browser developer tools for debugging and performance profiling.

Challenges

Engineering Hurdles

Managing Multiple Institutional Roles

Five distinct roles with overlapping but distinct permissions required careful permission modeling. I used Django's group and permission system extended with custom template tags and view decorators to enforce access control without duplicating logic.

Designing Approval Workflows

The multi-step approval chain needed to be configurable and prevent invalid state transitions. I modeled logbook entries with explicit status fields and validated transitions in the service layer before persisting changes.

Handling Internship Lifecycle States

From registration to final evaluation, each internship moves through phases. Tracking these states while keeping the user interface intuitive required a clean separation between data models and presentation logic.

Deploying Django to AWS

Configuring Nginx, Gunicorn, static files, and environment variables on a production Linux server was a significant learning experience. Debugging production issues strengthened my understanding of server management and deployment pipelines.

Learnings

Growth as an Engineer

Building a production-ready Django application taught me to think beyond tutorials — handling edge cases, managing dependencies, and structuring code for long-term maintainability.
Deploying software to cloud servers gave me hands-on experience with Linux administration, reverse proxies, and the realities of running applications in production.
Designing role-based systems reinforced the importance of security-first thinking — every view, every query, and every template must consider who is requesting the data.
Workflow automation taught me to model business processes as state machines, making complex approval chains predictable and debuggable.
Database modeling for multi-stakeholder applications requires balancing normalization with query performance — an insight that comes from building, not reading.
Production debugging skills — reading logs, monitoring server resources, and diagnosing deployment issues — are as important as writing code.
Future

Potential Enhancements

Mobile Application

React Native app for students to submit logbook entries and receive notifications on the go.

Email Notifications

Automated alerts for pending approvals, evaluation deadlines, and supervisor feedback.

Analytics Dashboard

Institutional insights — placement trends, completion rates, and student performance metrics.

Document Uploads

Support for attaching images, scanned documents, and reports to logbook entries.

Digital Signatures

Electronic sign-off for supervisors and coordinators, replacing physical signatures entirely.

Offline Support

Progressive web app capabilities for students in areas with unreliable internet connectivity.

Reflection

Building Workflow-Driven Systems

This project demonstrates my ability to design and build workflow-driven applications that solve practical institutional challenges. The SIWES Logbook Manager isn't just a CRUD application — it orchestrates a complex approval chain across five distinct user roles, each with their own responsibilities and system views.

Developing this platform strengthened my understanding of backend architecture, role-based systems, production deployment on AWS, and creating software that improves collaboration between multiple stakeholders. Every engineering decision — from the modular Django app structure to the Nginx reverse proxy configuration — was driven by the need for reliability and maintainability.

I'm passionate about building reliable software that simplifies complex processes while maintaining clean, scalable, and maintainable architecture — because the best systems are the ones that quietly make organizations work better.