Skip to content

Repository files navigation

❖ TBCMS: Topic Based Content Management System

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.


◆ About the Project

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.


◆ Screenshots

Portal Signup Login
Portal Signup Login
Manager Dashboard Student Dashboard Courses & Topics
Manager Student Courses

◆ Features

Authentication System:

  • Signup with automatic role based ID generation
    • Students get STD prefix (e.g. STD1001, STD1002...)
    • Managers get MNG prefix (e.g. MNG5001, MNG5002...)
  • 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

◆ Built With

  • Language: C++
  • Framework: Qt (Qt Widgets)
  • UI: Qt Designer (.ui files)
  • IDE: Qt Creator

◆ How to Run

  1. Clone the repository:
    git clone https://github.com/byteofhoney/TBCMS_TopicBased-CMS.git
  2. Open TBCMS.pro in Qt Creator
  3. Click Build then Run

Make sure Qt 5 or Qt 6 is installed.


◆ Project Structure

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/

◆ App Flow

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

❖ How to Use!

◆ Manager Flow

  1. Study Program tab → Add a program (e.g. Computer Engineering) → click it to select it
  2. Course Management tab → Add a course → it links to the selected program → click the course
  3. Topic Management tab → Add a Topic → Add a SubTopic → click the specific SubTopic
  4. 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.

◆ Student Flow

  1. Register Study Program tab → Click a program in the list → click Register
  2. Courses and Topics tab → Click a course → click Select Course → SubTopics appear
  3. Lessons tab → Click a SubTopic → lessons for it appear

About

Built as a desktop content management system for educators and students. It manages programs, courses, topics and lessons with separate roles for manager and student.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages