A comprehensive inventory management system designed for makerspaces, fab labs, and collaborative workshops. Track supplies, manage reorders, generate QR codes, and keep your space running smoothly.
OpenMakerSuite includes a complete automated release system that:
- β Automatic Releases: Triggered when all CI/CD tests pass
- π Cryptographic Signing: Uses Sigstore for tamper-proof releases
- π¦ Multi-Platform Builds: AMD64 and ARM64 Docker images
- π Sentry Integration: Automatic release tracking and error monitoring
- π Semantic Versioning: Automatic version bumps based on commits
Quick Setup: Run ./scripts/setup-release-automation.sh to configure
Verify Releases: Use ./scripts/verify-release.sh v1.2.3 to cryptographically verify any release
π Full Documentation: See RELEASE_AUTOMATION.md
- π¦ Inventory Management: Track items, quantities, locations, and suppliers
- π Automated Reordering: Smart reorder suggestions based on usage patterns
- π± QR Code Integration: Generate and scan QR codes for quick item access
- π Usage Analytics: Monitor consumption patterns and optimize stock
- π·οΈ Index Card Generation: Print physical inventory cards
- π₯ Multi-User Support: Role-based access control
- π Supplier Management: Track lead times, costs, and performance
- π Notifications: Get alerts for low stock and deliveries
- π Dashboard: Real-time overview of inventory status
- Django: Python web framework with REST API
- PostgreSQL: Primary database
- Redis: Caching and background tasks
- Celery: Asynchronous task processing
- Docker: Containerization
- React: Modern JavaScript UI framework
- TypeScript: Type-safe JavaScript development
- React Router: Client-side routing
- Axios: HTTP client for API calls
- Docker Compose: Local development orchestration
- GitHub Actions: CI/CD pipeline
- Sentry: Error tracking and performance monitoring
- Docker & Docker Compose
- Node.js 18+ (for local frontend development)
- Python 3.11+ (for local backend development)
git clone https://github.com/your-org/openmakersuite.git
cd openmakersuite
cp .env.example .envEdit .env with your settings:
# Database
DATABASE_URL=postgresql://postgres:password@db:5432/makerspace_inventory
# Django
SECRET_KEY=your-secret-key-here
DEBUG=1
ALLOWED_HOSTS=localhost,127.0.0.1
# Redis
REDIS_URL=redis://redis:6379/0# Development mode with hot reload
docker-compose up -d
# Or use the latest release (production-ready)
./scripts/verify-release.sh latest
./deploy.sh# Create superuser
docker-compose exec backend python manage.py createsuperuser
# Load sample data (optional)
docker-compose exec backend python manage.py loaddata fixtures/sample_data.json- Frontend: http://localhost:3000
- Backend API: http://localhost:8000/api/
- Admin Panel: http://localhost:8000/admin/
- API Documentation: http://localhost:8000/api/docs/
- Setup Categories & Locations: Organize your inventory structure
- Add Items: Create inventory items with details and suppliers
- Generate QR Codes: Print QR codes for easy item identification
- Scan & Use: Scan QR codes to log usage and check stock
- Automatic Reorders: System suggests reorders based on usage patterns
- Receive Deliveries: Update stock when supplies arrive
Access the scanner at /scan/:itemId or use the main scanner page:
- Logged Users: Manual reorder form with quantity control
- Anonymous Users: Automatic reorder submission
- Real-time Updates: Instant stock level updates
# Backend
cd backend
python -m venv venv
source venv/bin/activate # On Windows: venv\Scripts\activate
pip install -r requirements.txt -r requirements-dev.txt
python manage.py migrate
python manage.py runserver
# Frontend
cd frontend
npm install
npm startThe project includes comprehensive linting and testing:
# Backend
cd backend
black . # Code formatting
isort . # Import sorting
flake8 . # Style checking
bandit -r . # Security scanning
pytest --cov # Tests with coverage
# Frontend
cd frontend
npm run lint # ESLint checking
npm test # Jest tests
npm run test:coverage # Coverage report# Create new migration
docker-compose exec backend python manage.py makemigrations
# Apply migrations
docker-compose exec backend python manage.py migrateGitHub Actions runs comprehensive tests on every push:
- β Backend unit & integration tests (pytest)
- β Frontend component tests (Jest/React Testing Library)
- β Code quality checks (Black, isort, flake8, ESLint)
- β Security scanning (Bandit, Safety, Gitleaks)
- β Docker build verification
- β Coverage reporting (Codecov)
# Run specific test suites
docker-compose exec backend pytest inventory/tests/
docker-compose exec backend pytest reorder_queue/tests/
# Frontend tests
cd frontend && npm test
# Integration tests with test database
docker-compose -f docker-compose.test.yml up --buildSecurity is a top priority with multiple layers of protection:
- π Authentication: JWT-based authentication system
- π‘οΈ Permissions: Role-based access control (RBAC)
- π Scanning: Automated security vulnerability scanning
- π Secrets: No hardcoded credentials or API keys
- π Monitoring: Sentry integration for security issue tracking
- β Validation: Input validation and sanitization
- π HTTPS: SSL/TLS encryption in production
# Backend security checks
bandit -r backend/
safety check --json
# Frontend dependency audit
cd frontend && npm audit
# Git secrets scanning
gitleaks detect-
Download Latest Release:
./scripts/verify-release.sh latest
-
Configure Environment:
cp .env.example .env # Edit .env with production settings -
Deploy:
./deploy.sh
Key production environment variables:
# Security
SECRET_KEY=your-production-secret-key
DEBUG=0
ALLOWED_HOSTS=yourdomain.com
# Database
DATABASE_URL=postgresql://user:pass@host:5432/dbname
# Monitoring
SENTRY_DSN=https://your-sentry-dsn
SENTRY_ENVIRONMENT=production
# Email (optional)
EMAIL_HOST=smtp.yourdomain.com
EMAIL_PORT=587
EMAIL_USE_TLS=1Example Nginx configuration:
server {
listen 80;
server_name yourdomain.com;
location / {
proxy_pass http://localhost:3000;
proxy_set_header Host $host;
}
location /api/ {
proxy_pass http://localhost:8000;
proxy_set_header Host $host;
}
}- π Release Automation: Complete release system setup
- π§ Development Guide: Development workflow and guidelines
- π API Documentation: REST API reference
- π³ Docker Guide: Container deployment guide
- π Security Guide: Security best practices
We welcome contributions! Please read our Contributing Guidelines:
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
- Issues: Check existing issues or create new ones
- Testing: Ensure all tests pass locally
- Code Quality: Run linting and formatting tools
- Documentation: Update docs for new features
- Review: Respond to code review feedback
OpenMakerSuite integrates with Sentry for:
- π Error Tracking: Automatic error capture and reporting
- π Performance Monitoring: API response times and database queries
- π± Release Tracking: Associate errors with specific releases
- π Alerting: Real-time notifications for critical issues
The admin dashboard provides:
- π Inventory levels and trends
- π Usage patterns and analytics
- π Reorder queue status
- π₯ User activity logs
- π¦ Supplier performance metrics
- π Documentation: Check the docs folder for detailed guides
- π Issues: Report bugs on GitHub Issues
- π¬ Discussions: Join GitHub Discussions for questions
- π§ Security: Email security issues to [email protected]
- π― Roadmap: See planned features in GitHub Projects
- π Releases: Follow release notes for updates
- β Star: Star the repo if you find it useful!
This project is licensed under the MIT License - see the LICENSE file for details.
- Django community for the excellent web framework
- React team for the powerful UI library
- Sigstore for keyless cryptographic signing
- PostgreSQL for robust database functionality
- All contributors who help improve OpenMakerSuite
Built with β€οΈ for the maker community
OpenMakerSuite helps makerspaces focus on creating instead of managing inventory.