It is a desktop application built with C++ and Qt Framework that provides a structured platform for educators and students to manage and access educational content through a role based system.
TBCMS is a full content management system with two user roles i.e. Manager and Student. Managers organize educational content in a hierarchy of Programs → Courses → Topics → SubTopics → Lessons. Students register for programs and access their course content. All data is stored persistently using file based storage.
| Portal | Signup | Login |
|---|---|---|
![]() |
![]() |
![]() |
| Manager Dashboard | Student Dashboard | Courses & Topics |
|---|---|---|
![]() |
![]() |
![]() |
Authentication System:
- Signup with automatic role based ID generation
- Students get
STDprefix (e.g. STD1001, STD1002...) - Managers get
MNGprefix (e.g. MNG5001, MNG5002...)
- Students get
- Login with ID, username, password and role verification
Manager Dashboard (4 tabs):
- Study Program Management: Add, Remove, Edit programs
- Course Management: Add, Remove, Edit courses per program
- Topic Management: Add Topics, SubTopics, Edit, Remove
- Lesson Management: Add and Remove lessons with descriptions
Student Dashboard (3 tabs):
- Register / Withdraw from Study Programs
- Browse Courses and Topics/SubTopics
- Access and read Lessons
General:
- File-based persistent data storage
- Session management with logout
- Role-based UI i.e. different views for Manager and Student
- Language: C++
- Framework: Qt (Qt Widgets)
- UI: Qt Designer (.ui files)
- IDE: Qt Creator
- Clone the repository:
git clone https://github.com/byteofhoney/TBCMS_TopicBased-CMS.git
- Open
TBCMS.proin Qt Creator - Click Build then Run
Make sure Qt 5 or Qt 6 is installed.
TBCMS/
├── main.cpp
├── mainwindow.cpp / .h / .ui # Landing portal
├── logindialog.cpp / .h / .ui # Login screen
├── signupdialog.cpp / .h / .ui # Signup with ID generation
├── dashboardwindow.cpp / .h / .ui # Manager & Student dashboards
├── TBCMS.pro
└── screenshots/
TBCMS Portal
├── Signup → Select Role → Auto ID Generated (STD / MNG)
└── Login → Role Verified
├── Manager → Study Program / Course / Topic / Lesson Management
└── Student → Register Program / Browse Courses / Access Lessons
- Study Program tab → Add a program (e.g. Computer Engineering) → click it to select it
- Course Management tab → Add a course → it links to the selected program → click the course
- Topic Management tab → Add a Topic → Add a SubTopic → click the specific SubTopic
- Lesson Management tab → Add a lesson → it links to the selected SubTopic
! Selection order matters, always click the item in the current tab before moving to the next tab.
- Register Study Program tab → Click a program in the list → click Register
- Courses and Topics tab → Click a course → click Select Course → SubTopics appear
- Lessons tab → Click a SubTopic → lessons for it appear





