Thesis Managment Website
Role-based academic thesis platform
- RBAC
- role-based access
- JSON/XML
- public REST API
- ★ 2
- stars
- Jan 2026
- last push
A full thesis-lifecycle platform with role-based access, database audit-log triggers and a public JSON / XML REST endpoint.
Thesis Management System
Modern, role-based web platform for managing undergraduate/graduate thesis/diploma projects in academic departments.
Status: Early / In development
Target users: Students · Thesis Supervisors (Professors) · Department Secretaries
License: MIT — feel free to use, modify and share (add a LICENSE file if missing)
✨ What this project does
A complete web application that helps university departments digitize and streamline the lifecycle of thesis/diploma work:
- Student-facing: topic selection, proposal submission, progress tracking, document uploads, supervisor communication
- Professor-facing: topic proposals, student applications, progress supervision, grading, document review & feedback
- Secretary-facing: administrative oversight, registration validation, defense scheduling, protocol keeping, statistics
Built with simplicity, clarity and real academic workflows in mind.
🛠 Tech Stack
| Layer | Technology | Notes |
|---|---|---|
| Backend | PHP 7.4 – 8.x | Procedural + some modular structure |
| Database | MySQL / MariaDB | Schema in project24.sql |
| Frontend | HTML5, CSS3, vanilla JavaScript | Minimal framework usage |
| Styling | Custom CSS (style_login.css + others) |
Responsive (partially) |
| Authentication | Session-based | login.php / logout.php |
| Common utilities | db_connect.php, init.php | Shared configuration & helpers |
No heavy frontend frameworks (React/Vue), no Composer dependencies — kept intentionally lightweight and deployable on almost any shared hosting.
🎯 Main Roles & Features (planned / partially implemented)
-
👨🎓 Student
- View available thesis topics
- Submit interest / application for a topic
- Upload proposal, progress reports, final thesis
- See status, deadlines, supervisor feedback
-
👨🏫 Professor / Supervisor
- Publish new thesis topics (with title, description, prerequisites)
- Review & accept/reject student applications
- Monitor student progress
- Provide feedback & upload evaluation
-
🧑💼 Secretary / Administrator
- Validate registrations & topic assignments
- Schedule thesis defenses
- Generate department statistics & reports
- Manage users (basic CRUD)
🚀 Quick Start (Local Development)
Prerequisites
- PHP ≥ 7.4
- MySQL / MariaDB
- Apache / Nginx (or PHP built-in server for testing)
Installation steps
-
Clone the repository
git clone https://github.com/thonos-cpu/Thesis_Managment_Website.git cd Thesis_Managment_Website -
Create database & import schema
mysql -u root -p CREATE DATABASE thesis_management CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; EXIT;
mysql -u youruser -p thesis_management < project24.sql -
Configure database connection
Edit
db_connect.php(orinit.php):<?php define('DB_HOST', 'localhost'); define('DB_USER', 'your_username'); define('DB_PASS', 'your_password'); define('DB_NAME', 'thesis_management');
-
Start a web server
-
Option A — using PHP built-in server (quickest)
php -S localhost:8000
-
Option B — place project in your Apache/Nginx www folder
-
-
Open in browser
http://localhost:8000/login.php
Default credentials (if any were seeded — check after import):
- Student: username / password from DB
- Professor / Secretary: usually higher privilege accounts
🗂 Project Structure
├── professor/ # Professor dashboard & actions
├── secretary/ # Secretary / admin panel
├── student/ # Student dashboard & features
├── db_connect.php # Database connection
├── init.php # Shared initialization / config
├── login.php # Authentication entry point
├── logout.php
├── project24.sql # Database schema + sample data (?)
├── style_login.css # Login page styling
└── README.md
🛤️ Roadmap / Planned improvements
- Full responsive design (mobile-friendly)
- Proper separation of logic & presentation (move to MVC-like structure)
- File upload validation & storage (PDFs, max size, antivirus scan if possible)
- Email notifications (proposal accepted, feedback added, defense scheduled…)
- Password hashing (currently plain?)
- Input sanitization & CSRF protection everywhere
- Role-based access control middleware
- Multi-language support (at least GR/EN)
- Docker support for easier deployment
- Unit/functional tests (PHPUnit)
🤝 Contributing
Contributions are welcome — especially if you're familiar with academic workflows.
- Fork the project
- Create your feature branch (
git checkout -b feature/amazing-login) - Commit your changes (
git commit -m 'Add secure login with rate limiting') - Push to the branch (
git push origin feature/amazing-login) - Open a Pull Request
Please follow PSR-12 coding style where possible.
Special thanks to everyone who tested early versions and gave feedback.
📄 License
Feel free to use this project as a base for your own department's system — just keep it kind, ethical and student-friendly.
Made with ☕ in Greece • 2025–2026
This version is clean, professional, readable, and future-proof. You can gradually fill in screenshots, completed features, and better setup instructions as the project matures.
Good luck with your thesis project — and congratulations on building something useful for your university community!