SkyGate is built using modern technologies and frameworks to ensure performance, scalability, and maintainability. This document outlines the complete technology stack used in the development of the application.
- Python 3.10+: Primary programming language for the backend
- Flask 2.3.x: Lightweight web framework for building the RESTful API
- Flask-RESTful: Extension for creating RESTful APIs with Flask
- Gunicorn: WSGI HTTP server for production deployment
- PostgreSQL 14+: Primary relational database for structured data
- User information
- Upload records
- Detection results
- API keys and usage logs
- MongoDB 6.0+: NoSQL database for flexible storage of detection metadata
- Complex analysis results
- System configuration
- Unstructured detection data
- Flask-JWT-Extended: JWT token-based authentication
- Passlib: Password hashing and verification
- PyJWT: JSON Web Token implementation
- Flask-Cors: Cross-Origin Resource Sharing (CORS) support
- TensorFlow 2.12+: Deep learning framework for neural network models
- PyTorch 2.0+: Deep learning framework for Vision Transformer models
- OpenCV 4.7+: Computer vision library for image processing
- Pillow 9.5+: Python Imaging Library for image manipulation
- NumPy 1.24+: Numerical computing library
- SciPy 1.10+: Scientific computing library
- scikit-image 0.20+: Image processing algorithms
- FFmpeg: Video processing and frame extraction
- ExifTool: Metadata extraction and analysis
- python-magic: File type detection
- Marshmallow: Object serialization/deserialization
- Flask-SQLAlchemy: ORM for database interactions
- PyMongo: MongoDB driver for Python
- Pydantic: Data validation and settings management
- Pytest: Testing framework
- Coverage.py: Code coverage measurement
- Flake8: Code linting
- Black: Code formatting
- TypeScript 5.0+: Typed JavaScript for improved development experience
- React 18.2+: JavaScript library for building user interfaces
- React Router 6.10+: Routing library for React applications
- Material-UI 5.13+: React component library implementing Material Design
- Emotion: CSS-in-JS library for component styling
- React-Icons: Icon library for React
- Framer Motion: Animation library for React
- React Context API: Built-in state management for authentication and app-wide state
- React Query 4.29+: Data fetching and caching library
- React Hook Form 7.43+: Form validation and handling
- Yup: Schema validation
- React Dropzone: Drag-and-drop file upload component
- Axios: HTTP client for API requests
- Chart.js: Charting library for data visualization
- React-Chartjs-2: React wrapper for Chart.js
- React-Vis: Data visualization components
- Jest: JavaScript testing framework
- React Testing Library: Testing utilities for React
- Cypress: End-to-end testing framework
- ESLint: JavaScript linting
- Prettier: Code formatting
- Webpack 5: Module bundler for JavaScript
- Babel: JavaScript compiler
- npm: Package manager for JavaScript
- pip: Package manager for Python
- Docker: Containerization platform
- Docker Compose: Multi-container Docker applications
- Nginx: Web server and reverse proxy
- GitHub Actions: Continuous integration and deployment
- Jest: JavaScript testing
- Pytest: Python testing
- Winston: Logging library for Node.js
- Sentry: Error tracking and monitoring
- Prometheus: Monitoring system
- Grafana: Visualization and analytics
- Git: Distributed version control system
- GitHub: Hosting for Git repositories
- Visual Studio Code: Code editor
- PyCharm: Python IDE
- Postman: API development and testing
- MongoDB Compass: GUI for MongoDB
- Markdown: Documentation format
- Swagger/OpenAPI: API documentation
- JSDoc: JavaScript documentation
- CPU: 4+ cores
- RAM: 8GB+
- Storage: 50GB+ SSD
- OS: Ubuntu 20.04 LTS or newer
- CPU: 8+ cores
- RAM: 16GB+
- Storage: 100GB+ SSD
- OS: Ubuntu 22.04 LTS
- Node.js: v16.0.0 or newer
- Python: v3.10 or newer
- PostgreSQL: v14 or newer
- MongoDB: v6.0 or newer
- Docker: Latest stable version
- Docker Compose: Latest stable version