Skip to content

Eliphaz21/generative-ai-course

Β 
Β 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

17 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Generative AI & Automation – Course Repository

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.

πŸš€ Quick Links

πŸ“š Course Overview

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.

πŸ—οΈ Repository Structure

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

πŸ”„ CI/CD Pipeline

This project implements a comprehensive CI/CD pipeline that demonstrates real-world development practices:

Pipeline Stages

  1. Quality Check: Linting, formatting, type checking
  2. Testing: Unit and integration tests across Python versions
  3. Security: Vulnerability scanning with Bandit and Safety
  4. Student Validation: Automated feedback for submissions
  5. Build: Docker image creation
  6. Deploy: Staging and production deployment

Branch Strategy

  • main: Production-ready code (admin only)
  • develop: Integration branch for contributors
  • intern/*: Personal branches for interns
  • feature/*: Feature development branches
  • hotfix/*: Emergency fixes

Automated Checks

  • βœ… Code formatting (Black)
  • βœ… Style checking (Flake8)
  • βœ… Type checking (MyPy)
  • βœ… Security scanning (Bandit, Safety)
  • βœ… Test coverage (Pytest)
  • βœ… Student submission validation

πŸš€ Getting Started

For Students

  1. Fork this repository to your GitHub account
  2. Clone your fork locally
  3. Work in student-submissions/your-username/week-X/
  4. Submit via Pull Request from your fork's main branch

For Contributors/Interns

  1. Clone the repository
  2. Create your personal branch: intern/your-name
  3. Install dependencies: make install
  4. Start development: make setup

For Administrators

  1. Review PRs to develop branch
  2. Test develop branch thoroughly
  3. Deploy to production via main branch
  4. Monitor CI/CD pipeline health

πŸ› οΈ Development Setup

Prerequisites

  • Python 3.8+
  • Git
  • Docker (optional)
  • GitHub account

Quick Setup

# 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

Docker Setup (Alternative)

# 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

πŸ“‹ Available Commands

# 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 status

πŸ§ͺ Testing

Test Structure

tests/
β”œβ”€β”€ unit/              # Unit tests
β”œβ”€β”€ integration/       # Integration tests
β”œβ”€β”€ fixtures/          # Test fixtures
└── conftest.py        # Pytest configuration

Running Tests

# All tests
make test

# Specific test categories
make test-unit
make test-integration

# With coverage
pytest --cov=./ --cov-report=html

πŸ”’ Security

Security Tools

  • Bandit: Python security linter
  • Safety: Dependency vulnerability scanner
  • GitHub Security Advisories: Automated detection

Security Practices

  • Never commit sensitive information
  • Use environment variables for configuration
  • Follow OWASP Top 10 guidelines
  • Keep dependencies updated
  • Report vulnerabilities privately

πŸ“Š Quality Metrics

Code Quality Standards

  • Test Coverage: Minimum 80%
  • Code Complexity: Maximum 10 (McCabe)
  • Security Issues: Zero critical/high
  • Documentation: 100% API coverage

Performance Targets

  • Build Time: < 10 minutes
  • Test Time: < 5 minutes
  • Deployment Time: < 5 minutes

🎯 Learning Objectives

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

πŸ“… Course Schedule

  • 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

πŸ› οΈ Tech Stack

Backend & AI/ML

  • Python: Core programming language
  • FastAPI/Flask: Web frameworks
  • PyTorch: Deep learning framework
  • Transformers: Hugging Face library
  • LangChain: AI application framework
  • OpenAI: API integration

Development & DevOps

  • 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

Frontend & Deployment

  • React/Vue.js: Frontend frameworks
  • RESTful APIs: API design
  • WebSocket: Real-time communication
  • PostgreSQL/MongoDB: Databases
  • Vector Databases: AI data storage

🀝 Contributing

For Students

  • Submit assignments via Pull Requests
  • Follow the Student Guide
  • Use the student PR template
  • Get automated feedback

For Contributors

  • Follow the Intern Guide
  • Use feature branches
  • Submit PRs to develop branch
  • Participate in code reviews

For Administrators

  • Review and merge PRs
  • Monitor CI/CD pipeline
  • Handle security incidents
  • Manage course content

πŸ† Recognition

Student Benefits

  • Portfolio Projects: Each assignment becomes a portfolio piece
  • GitHub Profile: Professional development history
  • Real-world Skills: Industry-standard practices
  • Networking: Connect with other developers

Contributor Benefits

  • 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.

About

Practical course on building, fine-tuning, and deploying generative AI agents with automation.

Resources

License

Code of conduct

Contributing

Security policy

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages

  • Python 94.5%
  • Makefile 4.4%
  • Dockerfile 1.1%