Skip to content

A Python Flask web application for security awareness training that uses LibreOffice to convert PowerPoint presentations into course slides and SQLAlchemy for database management.

License

Notifications You must be signed in to change notification settings

ThiagoMaria-SecurityIT/Security-Awareness-Web-Platform

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

18 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Security Awareness Web Platform

Status: Under Development Python Version Framework: Flask License: MIT

A Python Flask web application for security awareness training that uses LibreOffice to convert PowerPoint presentations into course slides and SQLAlchemy for database management.

This platform is designed to help organizations manage their annual security awareness training programs, a common requirement for compliance with frameworks like ISO 27001, NIST, SOC 2, and PCI-DSS.

Tip

To see how this project started, check out the original desktop version built with Tkinter(and now updated to Flask)!
You can find it here: Security-Awareness-APP

Main dashboard of the Security Awareness Web Platform

Table of Contents

  1. The Problem This Solves
  2. Core Features
  3. Development Roadmap
  4. How to Run This Project
  5. Troubleshooting
  6. Application Screenshots
  7. AI Transparency
  8. About Me & Contact
  9. Ways to Contribute

The Problem This Solves

Many organizations struggle with efficiently managing and tracking their mandatory annual security awareness training. This project solves several key problems:

  • User Management: Instead of manually tracking users in spreadsheets, this platform provides a central database to manage all employees, their roles, and their training status.
  • Course Assignment: Easily assign specific training courses to individuals or entire teams, ensuring everyone receives the required training.
  • Completion Tracking: The platform provides a clear overview of who has completed their assigned training and who has not, which is crucial for audit and compliance purposes.
  • Content Flexibility: Use your existing PowerPoint (.pptx) training materials. The platform automatically converts them into a web-based course, saving time and resources.

Core Features

  • Role-Based Access: Different views and permissions for Learners, Trainers, and Admins.
  • Automated Course Conversion: Upload a .pptx file, and it becomes an interactive web course.
  • Course Management Hub: A central dashboard for trainers to upload, view, list, and delete courses.
  • User & Enrollment Database: Tracks all users and their course enrollment history.

Development Roadmap

This project is currently under active development. Key features like the interactive course viewer and course completion logic are still being implemented.

The goal is to have these features fully functional by December 2025. The implementation will be based on the logic from the previous Tkinter version of this application (which already has a working presentation preview) and will be expanded upon as development time allows.

You can find the original Tkinter version here for reference: https://github.com/ThiagoMaria-SecurityIT/Security-Awareness-APP

How to Run This Project

  1. Clone the Repository:

    git clone https://github.com/ThiagoMaria-SecurityIT/Security-Awareness-Web-Platform.git
    cd Security-Awareness-Web-Platform
  2. Create and Activate a Virtual Environment:

    # For Windows
    python -m venv venv
    venv\Scripts\activate
  3. Install Dependencies:

    pip install -r requirements.txt
  4. Install LibreOffice: This is required for the automatic conversion of PowerPoint files.

    • Download from libreoffice.org.
    • Ensure the path to LibreOffice in app.py is correct for your system.
  5. Run the Application:

    python app.py

    The app will start, create the necessary folders and database, and be accessible at http://127.0.0.1:5000.

  6. Default Admin Login:

    • Email: superadmin@app.com
    • Password: superadmin123

Troubleshooting

If the application crashes or you get an error because your session is stuck, you may need to manually log out. Simply navigate to the logout URL in your browser: http://127.0.0.1:5000/logout

This will clear your session and redirect you to the login page.

Application Screenshots

Manage Courses Assign Course
Assign Course page Team Progress page
Team Progress User Management
User Management page Login page
Login Page Dashboard
image Manage Courses page

AI Transparency

This project was developed with the significant use of an AI assistant, Manus, for code generation, debugging, and architectural guidance. The process was collaborative, where the logic and feature requests were directed by a human developer who also reviewed, tested, and refined the AI-generated code to ensure it met the project's goals and quality standards. This project is a testament to human-AI partnership in modern software development.

About Me & Contact

Thiago Maria - From Brazil to the World 🌎
Senior Security Information Professional | Passionate Programmer | AI Developer

My passion for programming and my professional background in security analysis led me to create this GitHub account to share my knowledge of security information, cybersecurity, Python, and AI development practices. My work primarily focuses on prioritizing security in organizations while ensuring usability and productivity.

Let's Connect:

👇🏽 Click on the badges below:

LinkedIn
Hugging Face

Ways to Contribute

Want to see more upgrades? Help me keep it updated!
Sponsor

About

A Python Flask web application for security awareness training that uses LibreOffice to convert PowerPoint presentations into course slides and SQLAlchemy for database management.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published