Skip to content

Latest commit

Β 

History

45 Commits

Folders and files

NameName
Last commit message
Last commit date
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

DataTribe - Databricks Learning Platform

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

🌐 Get Started

πŸ‘‰ Visit the Web UI:

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

πŸ“ Repository Structure

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

🎯 Quick Links

For Students

For Admins

Course Content


πŸ“Š What's Included

Course Structure

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)

Infrastructure

  • 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

πŸš€ Quick Start Commands

Data Engineers

# Open the web UI to get workspace access
open web/index.html
# Then navigate to: /Shared/terraform-managed/course/notebooks/ in Databricks

Data Platform Engineers

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

πŸ› οΈ User Management CLI

For Admins: Manage users efficiently with the built-in CLI tool.

Quick Reference

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

Examples

Add 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

Features

  • βœ… 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 --apply flag to deploy immediately
  • βœ… Batch operations - Add multiple users at once

What Gets Created

When you add a user, Terraform automatically creates:

  1. Databricks user account
  2. Group membership (platform_admins or platform_students)
  3. Personal schema in databricks_course catalog
  4. Appropriate permissions based on group
  5. Access to all 27 course notebooks

πŸ” Request Workspace Access

For Students

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.

For Admins: Google Form Setup

The web UI uses a Google Form for access requests (replacing the old broken mailto: link). To set up:

  1. 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)
  2. Configure Settings:

    • Enable "Collect email addresses"
    • Enable "Limit to 1 response" (optional)
    • Set confirmation message: "Thank you! We'll contact you within 24 hours."
  3. Get Form URL: Click Send β†’ Link icon β†’ Copy URL

  4. Update Web UI: Edit web/data-engineer.html line 220 and replace YOUR_FORM_ID_HERE with your actual form URL

  5. Enable Notifications: In form settings, enable email notifications for new responses

Benefits: No email client required, mobile-friendly, structured data collection, GDPR compliant


πŸ“ž Support

  • πŸ› 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

🏷️ Project Status

GitHub Workflow Status Poetry Terraform


πŸŽ“ Ready to learn? πŸ—οΈ Ready to deploy? Start your Databricks journey with DataTribe today! πŸš€

About

Databricks based Data Engineering learning resource

Resources

Stars

6 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages