Welcome to the official repository for the Generative AI & Automation course. This project demonstrates modern software development practices including CI/CD, automated testing, security scanning, and collaborative development workflows.
- Student Guide - How to submit assignments
- Intern Guide - Development workflow for team members
- Contributing Guidelines - Complete contribution guide
- Security Policy - Security guidelines and reporting
- Code of Conduct - Community guidelines
This is an 8-week intensive course for intermediate/advanced students to gain hands-on experience with:
- Building and deploying generative agents
- Fine-tuning foundation models (LLMs, diffusion)
- Working with multimodal AI (text, image, audio, video)
- Hosting models as APIs and serving them for web and mobile front ends
- Automating model workflows using GitHub Actions, Docker, and APIs
- Modern Development Practices: CI/CD, testing, security, collaboration
Each week includes 3 hours of lectures and 3 hours of practical workshops.
generative-ai-course/
βββ .github/ # GitHub configuration
β βββ workflows/ # CI/CD pipelines
β βββ ISSUE_TEMPLATE/ # Issue templates
β βββ pull_request_template.md
βββ lectures/week-01/ # Weekly lecture materials
βββ workshops/week-01/ # Workshop starter kits
βββ student-submissions/ # Student assignment submissions
βββ scripts/ # Automation and utility scripts
βββ tests/ # Test suite
βββ docs/ # Documentation
βββ capstone-projects/ # Final projects
βββ .gitignore # Git ignore rules
βββ requirements.txt # Python dependencies
βββ pyproject.toml # Modern Python configuration
βββ Dockerfile # Container configuration
βββ docker-compose.yml # Local development setup
βββ Makefile # Development commands
βββ README.md # This file
This project implements a comprehensive CI/CD pipeline that demonstrates real-world development practices:
- Quality Check: Linting, formatting, type checking
- Testing: Unit and integration tests across Python versions
- Security: Vulnerability scanning with Bandit and Safety
- Student Validation: Automated feedback for submissions
- Build: Docker image creation
- Deploy: Staging and production deployment
main: Production-ready code (admin only)develop: Integration branch for contributorsintern/*: Personal branches for internsfeature/*: Feature development brancheshotfix/*: Emergency fixes
- β Code formatting (Black)
- β Style checking (Flake8)
- β Type checking (MyPy)
- β Security scanning (Bandit, Safety)
- β Test coverage (Pytest)
- β Student submission validation
- Fork this repository to your GitHub account
- Clone your fork locally
- Work in
student-submissions/your-username/week-X/ - Submit via Pull Request from your fork's main branch
- Clone the repository
- Create your personal branch:
intern/your-name - Install dependencies:
make install - Start development:
make setup
- Review PRs to develop branch
- Test develop branch thoroughly
- Deploy to production via main branch
- Monitor CI/CD pipeline health
- Python 3.8+
- Git
- Docker (optional)
- GitHub account
# Clone repository
git clone https://github.com/NERD-Community-Ethiopia/generative-ai-course.git
cd generative-ai-course
# Install dependencies
make install
# Run quality checks
make quality
# Start development
make setup# Build and run with Docker Compose
docker-compose up -d
# Run specific services
docker-compose up jupyter # Jupyter Lab
docker-compose up tests # Run tests
docker-compose up lint # Run linting# Development
make install # Install dependencies
make test # Run tests
make lint # Run linting
make format # Format code
make security # Security checks
make quality # All quality checks
# Docker
make docker-build # Build Docker image
make docker-run # Run with Docker Compose
make docker-stop # Stop Docker services
# Utilities
make clean # Clean temporary files
make docs # Build documentation
make validate-submission # Validate student submission
make dependency-report # Generate dependency report
make status # Show project statustests/
βββ unit/ # Unit tests
βββ integration/ # Integration tests
βββ fixtures/ # Test fixtures
βββ conftest.py # Pytest configuration
# All tests
make test
# Specific test categories
make test-unit
make test-integration
# With coverage
pytest --cov=./ --cov-report=html- Bandit: Python security linter
- Safety: Dependency vulnerability scanner
- GitHub Security Advisories: Automated detection
- Never commit sensitive information
- Use environment variables for configuration
- Follow OWASP Top 10 guidelines
- Keep dependencies updated
- Report vulnerabilities privately
- Test Coverage: Minimum 80%
- Code Complexity: Maximum 10 (McCabe)
- Security Issues: Zero critical/high
- Documentation: 100% API coverage
- Build Time: < 10 minutes
- Test Time: < 5 minutes
- Deployment Time: < 5 minutes
By the end of this course, students will be able to:
- Design and implement generative AI agents
- Fine-tune and deploy custom AI models
- Build full-stack applications with AI integration
- Automate AI workflows using modern DevOps practices
- Deploy AI applications to production environments
- Use professional development tools and practices
- Collaborate effectively using Git and GitHub
- Write secure, tested, and maintainable code
- Week 1: Introduction to Generative AI & Course Setup
- Week 2: Building Your First AI Agent
- Week 3: Fine-tuning Foundation Models
- Week 4: Multimodal AI Applications
- Week 5: API Development & Deployment
- Week 6: Frontend Integration & User Experience
- Week 7: Automation & CI/CD Pipelines
- Week 8: Capstone Project Development
- Python: Core programming language
- FastAPI/Flask: Web frameworks
- PyTorch: Deep learning framework
- Transformers: Hugging Face library
- LangChain: AI application framework
- OpenAI: API integration
- Git & GitHub: Version control and collaboration
- Docker: Containerization
- GitHub Actions: CI/CD automation
- Pytest: Testing framework
- Black/Flake8: Code formatting and linting
- MyPy: Type checking
- Bandit/Safety: Security tools
- React/Vue.js: Frontend frameworks
- RESTful APIs: API design
- WebSocket: Real-time communication
- PostgreSQL/MongoDB: Databases
- Vector Databases: AI data storage
- Submit assignments via Pull Requests
- Follow the Student Guide
- Use the student PR template
- Get automated feedback
- Follow the Intern Guide
- Use feature branches
- Submit PRs to develop branch
- Participate in code reviews
- Review and merge PRs
- Monitor CI/CD pipeline
- Handle security incidents
- Manage course content
- Portfolio Projects: Each assignment becomes a portfolio piece
- GitHub Profile: Professional development history
- Real-world Skills: Industry-standard practices
- Networking: Connect with other developers
- GitHub Contributors: Recognition in project history
- Reference Letters: Professional recommendations
- Skill Development: Advanced development practices
- Career Opportunities: Industry connections
This course teaches both AI/ML skills and professional software development practices. Students learn to work like real developers while building cutting-edge AI applications.