Supply Chain Security Academy
Transform your team into supply chain security experts with enterprise-grade training and compliance reporting.
What is this?
Supply Chain Security Academy is a B2B SaaS platform that gamifies npm supply chain security training for enterprise teams. Built on proven game mechanics from npm-threat-detector-game, it adds team management, Slack integration, and SOC2-compliant reporting—purpose-built for security teams during procurement windows opened by real-world threats like the Axios NPM breach.
Features
- Team Management – Invite users, track progress per seat, manage roles and permissions
- Interactive Challenges – 20+ hands-on npm threat detection scenarios and best practices
- Admin Dashboard – Real-time completion rates, time-per-challenge analytics, and team leaderboards
- Slack Integration – Weekly challenge notifications and achievement celebrations in your workspace
- Compliance Exports – SOC2/ISO27001-ready PDF reports documenting training completion hours
- Flexible Pricing – Freemium model with free tier (5 challenges, single-player) and Pro tier ($49/seat/year)
- Stripe Checkout – Secure billing for individuals and teams
Quick Start
Installation
# Clone the repository
git clone <repo-url>
cd supply-chain-security-academy
# Install dependencies
pip install -e .
# Copy environment template
cp .env.example .env
# Configure your credentials
# Update .env with database URL, Stripe keys, Slack bot token, etc.
# Initialize database
python -m backend.database init
# Run the server
python -m backend.main
Environment Setup
Create a .env file with:
DATABASE_URL=postgresql://user:password@localhost/academy
STRIPE_SECRET_KEY=sk_...
SLACK_BOT_TOKEN=xoxb-...
JWT_SECRET=your-secret-key
ENVIRONMENT=development
Usage Examples
Create a Team Account
POST /api/teams
{
"name": "Acme Security",
"email": "security@acme.com",
"seats": 5
}
Invite Team Members
POST /api/teams/{team_id}/invitations
{
"email": "engineer@acme.com",
"role": "player"
}
Generate Compliance Report
GET /api/teams/{team_id}/compliance-report?format=pdf
Configure Slack Integration
POST /api/integrations/slack
{
"team_id": "team_123",
"bot_token": "xoxb-...",
"channel": "#security-training"
}
Tech Stack
- Backend: Python 3.11, FastAPI
- Database: PostgreSQL
- Authentication: JWT
- Payments: Stripe
- Integrations: Slack API
- Compliance: SOC2-ready audit logging
- ORM: SQLAlchemy
License
MIT
Release files for supply-chain-security-academy 0.1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| supply_chain_security_academy-0.1.0.tar.gz | 12.4 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| supply_chain_security_academy-0.1.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 28.1 kB
Release files / supply_chain_security_academy-0.1.0.tar.gz
| Download URL | supply_chain_security_academy-0.1.0.tar.gz |
|---|---|
| Size | 12.4 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
e6721e9a5998b18b9df7d4982973f5c18c73de03d1d7b945b040c50d8b0c35a6
|
|
BLAKE2b-256 checksum How to use checksums |
669bf02e329740ce4b279aef1e503a3f1a50ce21185077c9c37e49fd86d6bf50
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.9.25
|
Release files / supply_chain_security_academy-0.1.0-py3-none-any.whl
| Download URL | supply_chain_security_academy-0.1.0-py3-none-any.whl |
|---|---|
| Size | 15.7 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
094d1ec5b8a5b8304998f620e3a55770977e1700c85df69b54e15ac97c48a182
|
|
BLAKE2b-256 checksum How to use checksums |
78d0ea544bebf63ef2e3798042031eacb9491154fa0041e676ed8df6efcb3ac3
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.9.25
|