batman
This commit is contained in:
commit
66f9ce3614
33 changed files with 2271 additions and 0 deletions
173
Readme.md
Normal file
173
Readme.md
Normal file
|
@ -0,0 +1,173 @@
|
|||
# NetViz: Secure Network Documentation & Visualization Tool
|
||||
|
||||
A security-focused web application for documenting, visualizing, and managing network topologies with minimal JavaScript and a modern UI.
|
||||
|
||||
## Features
|
||||
|
||||
- **Security-First Architecture**
|
||||
- OWASP Top 10 protections
|
||||
- Secure session management
|
||||
- CSRF protection
|
||||
- Bcrypt password hashing
|
||||
- Rate limiting for auth endpoints
|
||||
- SQL injection protection
|
||||
|
||||
- **Modern, Minimal UI**
|
||||
- HTMX for dynamic functionality
|
||||
- Tailwind CSS with dark/light mode
|
||||
- Responsive, mobile-first design
|
||||
- Accessible components
|
||||
|
||||
- **Core Functionality**
|
||||
- User authentication system
|
||||
- Network topology management
|
||||
- Interactive visualization
|
||||
- Firewall rule documentation
|
||||
- Data import/export (JSON, CSV)
|
||||
|
||||
- **Deployment Ready**
|
||||
- Docker and docker-compose configuration
|
||||
- PostgreSQL integration
|
||||
- Comprehensive logging
|
||||
- Health check endpoints
|
||||
|
||||
## Project Structure
|
||||
|
||||
```
|
||||
/netviz/
|
||||
├── app/
|
||||
│ ├── auth/ # Authentication blueprints and views
|
||||
│ ├── core/ # Core application functionality
|
||||
│ ├── api/ # API endpoints
|
||||
│ ├── models/ # SQLAlchemy models
|
||||
│ ├── templates/ # Jinja2 templates
|
||||
│ ├── static/ # Static assets
|
||||
│ ├── utils/ # Utility functions
|
||||
│ ├── __init__.py # Application factory
|
||||
│ ├── extensions.py # Flask extensions
|
||||
│ └── config.py # Configuration classes
|
||||
├── tests/ # Pytest test suite
|
||||
├── migrations/ # Alembic database migrations
|
||||
├── docker/ # Docker-related files
|
||||
├── .env.sample # Sample environment variables
|
||||
├── requirements.txt # Python dependencies
|
||||
├── requirements-dev.txt # Development dependencies
|
||||
├── Dockerfile # Production Dockerfile
|
||||
├── docker-compose.yml # Docker Compose configuration
|
||||
└── README.md # Project documentation
|
||||
```
|
||||
|
||||
## Getting Started
|
||||
|
||||
### Prerequisites
|
||||
|
||||
- Python 3.9+
|
||||
- Docker and Docker Compose
|
||||
- Git
|
||||
|
||||
### Local Development Setup
|
||||
|
||||
1. Clone the repository
|
||||
```bash
|
||||
git clone https://github.com/yourusername/netviz.git
|
||||
cd netviz
|
||||
```
|
||||
|
||||
2. Create and activate a virtual environment
|
||||
```bash
|
||||
python -m venv venv
|
||||
source venv/bin/activate # On Windows: venv\Scripts\activate
|
||||
```
|
||||
|
||||
3. Install dependencies
|
||||
```bash
|
||||
pip install -r requirements.txt
|
||||
pip install -r requirements-dev.txt
|
||||
```
|
||||
|
||||
4. Set up environment variables
|
||||
```bash
|
||||
cp .env.sample .env
|
||||
# Edit .env with your configuration
|
||||
```
|
||||
|
||||
5. Initialize the database
|
||||
```bash
|
||||
flask db upgrade
|
||||
```
|
||||
|
||||
6. Run the development server
|
||||
```bash
|
||||
flask run --debug
|
||||
```
|
||||
|
||||
### Docker Deployment
|
||||
|
||||
1. Build and start the containers
|
||||
```bash
|
||||
docker-compose up -d
|
||||
```
|
||||
|
||||
2. Access the application at http://localhost:5000
|
||||
|
||||
## Security Features
|
||||
|
||||
- **Authentication**
|
||||
- Bcrypt password hashing
|
||||
- Session-based authentication with secure cookies
|
||||
- Password reset functionality
|
||||
- Account lockout after failed attempts
|
||||
|
||||
- **Protection Mechanisms**
|
||||
- CSRF tokens for all forms
|
||||
- Content Security Policy (CSP)
|
||||
- XSS protection
|
||||
- SQL injection prevention
|
||||
- Rate limiting
|
||||
- Input validation and sanitization
|
||||
|
||||
## Development Guidelines
|
||||
|
||||
- Follow PEP 8 style guide
|
||||
- Include type hints for all functions
|
||||
- Write docstrings for all modules, classes, and functions
|
||||
- Maintain test coverage above 90%
|
||||
- Use atomic commits with descriptive messages
|
||||
|
||||
## Testing
|
||||
|
||||
Run the test suite with pytest:
|
||||
|
||||
```bash
|
||||
pytest
|
||||
```
|
||||
|
||||
Generate a coverage report:
|
||||
|
||||
```bash
|
||||
pytest --cov=app --cov-report=html
|
||||
```
|
||||
|
||||
## Color Scheme
|
||||
|
||||
The application uses a professional color palette that works well in both light and dark modes:
|
||||
|
||||
- **Primary**: #3B82F6 (blue-500)
|
||||
- **Secondary**: #10B981 (emerald-500)
|
||||
- **Accent**: #8B5CF6 (violet-500)
|
||||
- **Dark Background**: #111827 (gray-900)
|
||||
- **Light Background**: #F9FAFB (gray-50)
|
||||
- **Dark Text**: #1F2937 (gray-800)
|
||||
- **Light Text**: #F9FAFB (gray-50)
|
||||
|
||||
## License
|
||||
|
||||
[MIT License](LICENSE)
|
||||
|
||||
## Contributing
|
||||
|
||||
1. Fork the repository
|
||||
2. Create a feature branch
|
||||
3. Make your changes
|
||||
4. Run tests
|
||||
5. Submit a pull request
|
Loading…
Add table
Add a link
Reference in a new issue