Skip to content

MoreMorePwn/ByteSec

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

87 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ByteSec

Interactive cybersecurity learning platform for guided lessons, graded activities, and CTF-style practice labs.

Built with Flask, markdown course content, and integrated challenge services for hands-on security education.


Interactive Cybersecurity Learning Platform

ByteSec is a web platform for learning cybersecurity through guided modules, short activity checks, article publishing, community challenge sharing, and hands-on challenge practice. It brings structured lesson flow and CTF-style exercises into one interface for both learners and admins.


Overview

Item Details
Name ByteSec
Type Web-based cybersecurity learning platform
Stack Flask, Flask-SQLAlchemy, Jinja, Tailwind CSS, SQLite, optional Turso
Focus Web exploitation, reverse engineering, cryptography, pwn, and Windows forensics
Activity Types Multiple choice, predict the output, fill in the blank, spot the vulnerable line, flag submission
Included Areas Courses, articles, community challenges, leaderboards, profile management, and admin review pages

Features

  • Guided course tracks loaded from modules/
  • Interactive lesson checks with immediate feedback
  • Multiple activity formats for concept validation and hands-on practice
  • Downloadable challenge materials and challenge service integration
  • Course progress tracking and leaderboard support
  • Article submission and review workflow
  • Community challenge submission, review, approval, and solve flow
  • Theme toggle, authentication, and profile editing
  • Admin surfaces for article, challenge, and service management

Problem Solved

Security learning often gets split across slide decks, notes, challenge portals, and separate practice environments. ByteSec closes that gap by combining structured explanation, interactive checking, and challenge practice in one application so learners can move from concept to execution without changing tools.


Demo Account

Username Password Access
demo demo123 Demo account with admin access

Screenshots

The gallery below was captured with Playwright using demo/capture_readme_screenshots.py.

Public Pages

Landing

ByteSec landing page

Sign In

ByteSec sign in page

Register

ByteSec registration page

Learning Flow

Dashboard

ByteSec dashboard

Course Catalog

ByteSec course catalog

Course Track

ByteSec web track page

Multiple Choice Activity

Multiple choice lesson activity

Predict Activity

Predict the output lesson activity

Fill in the Blank Activity

Fill in the blank lesson activity

Spot the Vulnerability Activity

Spot the vulnerability lesson activity

Flag Submission Activity

Flag submission lesson activity

Leaderboard

ByteSec leaderboard page

Articles and Community

Articles

Articles page

Article Detail

Article detail page

New Article

New article page

Community

Community challenges page

Challenge Detail

Community challenge detail page

Submit Challenge

Community challenge submission page

Account and Admin Pages

Submissions

Submissions page

Profile

Profile page

Admin Articles

Admin articles page

Admin Community

Admin community page

Admin Docker

Admin docker page


Technology Stack

Core Application

  • Flask 3.1
  • Flask-SQLAlchemy 3.1
  • Jinja templates
  • Vanilla JavaScript
  • Tailwind CSS CDN
  • Google Material Symbols

Data and Runtime

  • SQLite
  • Optional Turso via the bundled pure-Python HTTP driver
  • Runtime data under instance/
  • Vercel-compatible entrypoint in api/index.py

Content and Tooling

  • Markdown course modules
  • Docker Compose
  • GCC and Make
  • Playwright for README screenshot capture

Prerequisites

Make sure these are installed on your machine:

  • Python with SQLite support
  • pip
  • Docker and Docker Compose
  • GCC and Make

If startup fails with ModuleNotFoundError: No module named '_sqlite3', use a Python build that includes SQLite.


How to Run

1. Install Dependencies

pip install -r requirements.txt

2. Start the App

flask --app app run --debug

You can also run:

python app.py

Default URL:

http://127.0.0.1:5000

3. Optional Environment Variables

BYTESEC_HOST
BYTESEC_PORT
SECRET_KEY
BYTESEC_ADMIN_USERS
TURSO_DATABASE_URL
TURSO_AUTH_TOKEN

4. Database Commands

Create missing data without wiping users:

flask --app app ensure-db

Reload markdown course content while preserving registered users:

flask --app app refresh-course

Fully wipe and recreate the database:

flask --app app init-db

Run App and Challenge Services

The helper script manages the Flask app plus the Docker-backed services:

./scripts/dev-services.sh start
./scripts/dev-services.sh status
./scripts/dev-services.sh logs
./scripts/dev-services.sh restart
./scripts/dev-services.sh stop

Default service locations:

Service Endpoint
ByteSec web app http://127.0.0.1:5000
EzSQLi challenge http://127.0.0.1:8004
Ret2win challenge nc 127.0.0.1 9001
Docker admin dashboard http://127.0.0.1:5000/admin/docker

Made by Kelompok 4

Name Student ID
Jonathan Irvin Susanto 2802440430
Owen Ourelio Bong 2802461196
Huang Earl Gunawan 2802444523
Haikal Satrio Dewandaru 2802459600
Fathia Ramadhanti Hardianto 2802477414

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors