A secure web platform with blockchain-enabled logging and firewall protection
Shakti is a modular security-focused platform that integrates multiple cutting-edge technologies to provide a robust, transparent, and secure web application environment. Written primarily in Python and JavaScript, with supporting components in Rust and PowerShell, Shakti combines:
- Backend Logic β Core Python-based application handling business logic
- Firewall Protection β Advanced firewall subsystem for request filtering and security
- Blockchain Audit Trail β Immutable logging infrastructure for transparency and accountability
- Modern Frontend β Responsive web interface built with JavaScript, HTML, and CSS
Shakti is designed for developers, security engineers, and teams who need a comprehensive demonstration platform that showcases how modern security technologies can work together seamlessly.
- π Multi-Layer Security: Integrated firewall protection with customizable rule sets
- βοΈ Blockchain-Enabled Logging: Immutable audit trails for all critical operations
- π¨ Modern UI: Clean, responsive frontend with intuitive user experience
- π§ Modular Architecture: Each component can be extended, modified, or replaced independently
- π Easy Deployment: Simple batch script setup for Windows environments
- π§ͺ Comprehensive Testing: Automated test suite for reliability
- π¦ Lightweight Dependencies: Minimal external dependencies for easy maintenance
- π Real-time Monitoring: Live monitoring of system activities and security events
Shakti follows a modular, layered architecture:
βββββββββββββββββββββββββββββββββββββββ
β Frontend (UI Layer) β
β JavaScript / HTML / CSS β
βββββββββββββββ¬ββββββββββββββββββββββββ
β
βΌ
βββββββββββββββββββββββββββββββββββββββ
β Core Backend (Logic) β
β Python Module β
βββββββββββ¬ββββββββββββ¬ββββββββββββββββ
β β
βΌ βΌ
βββββββββββββββ ββββββββββββββββββββ
β Firewall β β Blockchain β
β Module β β Audit System β
βββββββββββββββ ββββββββββββββββββββ
| Component | Technologies |
|---|---|
| Backend | Python 3.8+ |
| Frontend | JavaScript (ES6+), HTML5, CSS3 |
| Blockchain | Custom blockchain implementation |
| Firewall | Python-based firewall engine |
| Utilities | Rust, PowerShell, Batch scripts |
| Package Management | pip (Python), npm (Node.js) |
Before installing Shakti, ensure you have the following installed on your system:
- Python 3.8 or higher - Download Python
- Node.js and npm - Download Node.js
- Git - Download Git
- Modern Web Browser - Chrome, Firefox, Edge, or Safari
- Windows 10/11 (for batch script support)
- Linux/macOS (you may need to create equivalent shell scripts)
- Rust (if modifying Rust components)
- Visual Studio Code or preferred code editor
Follow these steps to get Shakti up and running on your local machine.
git clone https://github.com/charmi-reddy/Shakti.git
cd ShaktiOpen your terminal or VSCode integrated terminal and run:
pip install -r requirements.txtThis will install all required Python packages listed in requirements.txt.
If your frontend has Node.js dependencies:
npm installEnsure all dependencies are installed correctly:
python --version # Should show Python 3.8+
node --version # Should show Node.js version
npm --version # Should show npm versionRun the included batch script to start Shakti:
.\start_shakti.batThis script will:
- Open two terminal windows for the backend and frontend servers
- Start the Python backend server
- Start the frontend development server
- Automatically open your default web browser to the application
Create and run a shell script equivalent:
# Start backend
python core/main.py &
# Start frontend (if applicable)
cd frontend && npm start &
# Open browser
open http://localhost:3000 # macOS
# or
xdg-open http://localhost:3000 # LinuxOnce started, navigate to:
http://localhost:3000
Shakti/
|-- main.py # System controller
|-- api_server.py # HTTP API, logging, block/unblock
|-- database.py # Data storage for MACs/channels/signal
|-- database_blockchain.py # Pushes data to Algorand blockchain
|-- firewall_server.py # Handles MAC blocklist and network policies
|-- smart_contract/ # PyTeal contract(s) for Algorand
|-- frontend/ # React.js client dashboard
|-- requirements.txt # Python deps
|-- package.json # Node.js deps
|-- scripts/ # Utility/setup scripts
|-- tests/ # Automated tests
|-- start_shakti.bat # Batch launcher script
System controller for detection, logging, firewall actions; coordinates workflow, backend communication, packet analysis, and event alerts.
Audit logging and real-time network protection API server; manages HTTP requests to block/unblock MACs, interfaces with the dashboard.
Backend storage for MAC events, signal data, channels, and messages; efficient lookups for network analytics.
Pushes events to Algorand, guaranteeing immutability and audit compliance; syncs backend events with blockchain state.
Handles blocklist operations and network access; enforces security policies using detection module outputs.
Algorand contract recording wireless attacks with full detail and count; enables compliance-ready audit trails.
requirements.txt,package.jsonβ dependencies.envβ credentials, backend/frontend config- Firewall rules, API endpoints customizable in code or config files
- Algorand parameters set in smart contract source
Backend Only:
python core/main.pyFrontend Only:
cd frontend
npm startRun Tests:
python -m pytest tests/We welcome contributions to Shakti! Here's how you can help:
- Fork the repository
- Create a feature branch
git checkout -b feature/amazing-feature
- Make your changes
- Commit your changes
git commit -m "Add amazing feature" - Push to the branch
git push origin feature/amazing-feature
- Open a Pull Request
- Follow PEP 8 for Python code
- Use meaningful variable and function names
- Add comments for complex logic
- Write tests for new features
- Update documentation as needed
- iOS/Android mobile companion app
- Advanced analytics (anomaly detection)
- Distributed firewall mode (multiple nodes)
- On-chain alert escalation
- Integration with enterprise SIEM/SOAR tools
- Rust-based firewall engine full migration
Made with β€οΈ by the Shakti Team
β Star this repository if you find it helpful!