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
- The Problem This Solves
- Core Features
- Development Roadmap
- How to Run This Project
- Troubleshooting
- Application Screenshots
- AI Transparency
- About Me & Contact
- Ways to Contribute
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.
- Role-Based Access: Different views and permissions for Learners, Trainers, and Admins.
- Automated Course Conversion: Upload a
.pptxfile, 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.
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
-
Clone the Repository:
git clone https://github.com/ThiagoMaria-SecurityIT/Security-Awareness-Web-Platform.git cd Security-Awareness-Web-Platform -
Create and Activate a Virtual Environment:
# For Windows python -m venv venv venv\Scripts\activate
-
Install Dependencies:
pip install -r requirements.txt
-
Install LibreOffice: This is required for the automatic conversion of PowerPoint files.
- Download from libreoffice.org.
- Ensure the path to LibreOffice in
app.pyis correct for your system.
-
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. -
Default Admin Login:
- Email:
superadmin@app.com - Password:
superadmin123
- Email:
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.
| Manage Courses | Assign Course |
|---|---|
![]() |
![]() |
| Team Progress | User Management |
![]() |
![]() |
| Login Page | Dashboard |
![]() |
![]() |
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.
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:






