Production-Ready Infrastructure as Code + Comprehensive Data Engineering Course
A complete Databricks learning platform combining:
- π 27 hands-on notebooks (fundamentals to production apps + data modelling)
- ποΈ Terraform automation for Unity Catalog, users, permissions, and RBAC
- π Zero-setup learning for students + 15-minute deployment for admins
π Visit the Web UI:
- π Live Site: https://datatribe-collective-labs.github.io/databricks-infra (GitHub Pages)
- π Local: Open index.html
The web UI provides:
- Student Guide - Get workspace access and start learning in 3 steps
- Admin Guide - Deploy complete infrastructure in 15 minutes
- Course Curriculum - Browse all 27 notebooks organized by module
- π Day/Night Mode - Toggle theme for comfortable viewing
- π± Mobile-Friendly - Responsive design with hamburger menu
databricks-infra/
βββ web/ # Web UI (START HERE)
β βββ index.html # Main landing page
β βββ data-engineer.html # Student guide
β βββ platform-engineer.html # Admin guide
β βββ curriculum.html # Course curriculum
β βββ styles.css # Shared styles
βββ README.md # This file
βββ CLAUDE.md # Technical docs for AI assistance
βββ docs/ # Reference documentation
β βββ DataEngineer-readme.md # Detailed student guide
β βββ DataPlatformEngineer-readme.md # Detailed admin guide
β βββ USER_SCHEMA_GUIDE.md # User isolation technical guide
β βββ assets/ # Logo and images
βββ course/ # Course content
β βββ notebooks/ # 27 Databricks notebooks
β βββ datasets/ # Sample data files
βββ terraform/ # Infrastructure as Code
β βββ main.tf, groups.tf, catalogs.tf
β βββ users.json # User configuration
β βββ versions.tf # Provider config
βββ src/ # Python package
β βββ cli.py # CLI tools
β βββ utils.py # Utilities
βββ tests/ # Test suite
- π Web Guide: web/data-engineer.html
- π Detailed Docs: docs/DataEngineer-readme.md
- π Workspace: https://dbc-d8111651-e8b1.cloud.databricks.com
- π Web Guide: web/platform-engineer.html
- π Detailed Docs: docs/DataPlatformEngineer-readme.md
- π§ Technical Reference: CLAUDE.md
- π Curriculum: web/curriculum.html
- π Notebooks: course/notebooks/
Foundational Knowledge:
- Week 1: Databricks Fundamentals (5 notebooks)
- Foundations: Data Modelling Patterns (4 notebooks)
Applied Learning:
- Week 2: Data Ingestion (5 notebooks)
- Week 3: Advanced Transformations (4 notebooks)
- Week 4: End-to-End Workflows (3 notebooks)
- Week 5: Production Deployment (4 notebooks)
Advanced Topics:
- Advanced: Databricks Apps with Streamlit (2 notebooks)
- 8 users with role-based access control
- 5 Unity Catalogs (sales, marketing, course)
- 24 schemas (medallion architecture: bronze, silver, gold)
- User isolation - each student gets personal workspace
- CI/CD pipeline - automated deployment via GitHub Actions
# Open the web UI to get workspace access
open web/index.html
# Then navigate to: /Shared/terraform-managed/course/notebooks/ in Databricks# Clone and setup
git clone https://github.com/chanukyapekala/databricks-infra
cd databricks-infra
poetry install
# Configure authentication (requires workspace admin)
databricks configure --token --profile datatribe
# Deploy infrastructure
cd terraform
terraform init
terraform applyFor Admins: Manage users efficiently with the built-in CLI tool.
# View all users
poetry run user-list
# Get detailed user info
poetry run user-get
# Then type email when prompted
# Add new user (interactive)
poetry run user-add
# Add multiple users
poetry run user-add-batch
# Remove user
poetry run user-remove
# Infrastructure status
poetry run user-statusAdd a new admin user:
$ poetry run user-add
Email address: new.user@example.com
Display name: New User
Group (admins/students): admins
π User will be created with:
Email: new.user@example.com
Name: New User
Group: platform_admins
Schema: databricks_course.new_user
Add this user? [Y/n]: y
β
Added user: new.user@example.com
π Next steps:
cd terraform
terraform apply ...View specific user details:
$ echo "user@example.com" | poetry run user-get
π€ User Details
============================================================
π§ Email: user@example.com
π€ Display Name: User Name
π₯ Group: platform_admins
π Personal Schema: databricks_course.user
π Permissions:
β
ALL_PRIVILEGES on all catalogs and schemas
...Filter user list:
# Find specific user
poetry run user-list | grep user@example.com- β Email validation - Prevents invalid emails
- β Duplicate detection - Won't add existing users
- β Preview before commit - See what will be created
- β Safe removal - Confirmation prompts for deletions
- β
Auto-deployment - Optional
--applyflag to deploy immediately - β Batch operations - Add multiple users at once
When you add a user, Terraform automatically creates:
- Databricks user account
- Group membership (platform_admins or platform_students)
- Personal schema in
databricks_coursecatalog - Appropriate permissions based on group
- Access to all 27 course notebooks
Visit the web UI and click "Request Workspace Access" - you'll be directed to a Google Form to submit your request. We'll respond within 24 hours.
The web UI uses a Google Form for access requests (replacing the old broken mailto: link). To set up:
-
Create Google Form at https://forms.google.com with fields:
- Full Name (short answer, required)
- Email Address (short answer with email validation, required)
- Background (multiple choice: Student/Professional/Academic/Other)
- Why do you want to learn Databricks? (paragraph, required)
- GDPR Consent checkbox (required)
-
Configure Settings:
- Enable "Collect email addresses"
- Enable "Limit to 1 response" (optional)
- Set confirmation message: "Thank you! We'll contact you within 24 hours."
-
Get Form URL: Click Send β Link icon β Copy URL
-
Update Web UI: Edit
web/data-engineer.htmlline 220 and replaceYOUR_FORM_ID_HEREwith your actual form URL -
Enable Notifications: In form settings, enable email notifications for new responses
Benefits: No email client required, mobile-friendly, structured data collection, GDPR compliant
- π Issues: Use GitHub Issues
- π Technical Docs: See CLAUDE.md for AI-assisted development
- π Troubleshooting: Check guides in docs/
- π¬ Contact: Reach out via Discord data-engg channel here: DataTribe Discord
π Ready to learn? ποΈ Ready to deploy? Start your Databricks journey with DataTribe today! π