
🚀 Sign up for free Postgres now: https://kirr.co/j2bylk
Learn to build a Django CRM from scratch in this comprehensive nearly 6-hour course. You’ll integrate Google Contacts, implement time-series analytics with TimescaleDB, and use production-ready automation with modern Python tools. This project covers everything from initial setup to production-ready automation.
Key Technologies
🕹️ Django – Full-stack web framework
🕹️ Tiger Cloud & TimescaleDB – Fast & time-series optimized PostgreSQL
🕹️ Google OAuth & People API – Authentication and contact syncing
🕹️ Tailwind CSS & Flowbite – Modern UI components
🕹️ Chart.js – Data visualization
🕹️ uv – Modern Python package management
🕹️ GitHub Actions – Automated workflows
What You’ll Learn
✅ Set up a modern Django project with uv and pre-commit
✅ Build Django models with foreign keys and relationships
✅ Implement Google OAuth authentication
✅ Create dynamic templates with Django templating system
✅ Track user events with Django signals and generic foreign keys
✅ Analyze time-series data with TimescaleDB
✅ Sync and parse data from Google People API
✅ Build custom Django management commands
✅ Visualize analytics with Chart.js
✅ Automate contact syncing with GitHub Actions
✅ Build a near-production-ready Django application
⭐️ Course Outline ⭐️
1. Getting Started
•• Project overview and setup
•• Django project creation with uv
•• Pre-commit hooks and automation
•• Creating your first Django user
2. Django Fundamentals
•• Models and database design
•• Foreign key relationships
•• Database migrations best practices
•• Environment variable management
3. Authentication & Views
•• Google Cloud setup and OAuth
•• Django views and URL routing
•• HTML templates and template inheritance
•• Dynamic vs static content
4. Frontend & Static Files
•• Managing static files with Whitenoise
•• UI design with Tailwind and Flowbite
•• Rendering database data in templates
•• Custom Tailwind theme (optional)
5. Event Tracking System
•• Event model for user activity tracking
•• Generic foreign keys for flexible relationships
•• Django signals for automated event creation
•• Custom signals and event analytics
6. TimescaleDB Analytics
•• Setting up TimescaleDB with Django
•• Time-series event tracking
•• Time bucket analysis and data aggregation
•• Visualizing analytics with Chart.js
7. Google Contacts Integration
•• Google People API setup and scopes
•• Parsing Google API responses
•• Contact sync service implementation
•• Custom Django management commands
8. Automation with GitHub Actions
•• Production-ready contact sync automation
•• Scheduled workflow implementation
💻 Code: https://github.com/codingforentrepreneurs/Django-CRM
Chapters:
00:00:00 Welcome
00:03:34 Final Project & Code Overview
00:07:47 Python & Django Project Setup
00:14:48 Create a Django Project with uv
00:24:22 Install pre-commit
00:29:50 Automate requirements file with uv and pre-commit
00:35:04 Creating your first Django User
00:41:09 Using Django to Store Data
00:48:28 Connecting Data with Foreign Keys
00:55:58 The Good, the bad, and the Ugly of DB Migrations
01:02:18 Handling Secrets with Python Dotenv
01:07:01 Google Cloud & Sign in with Google
01:13:53 Sign in with django-googler
01:21:28 Handling URLs with Views
01:28:43 Django View to Valid HTML
01:32:59 HTML Templates with Pure Python
01:38:36 Using Django Templates
01:44:43 Django Template Inheritance
01:50:34 Dynamic vs Static Content
01:57:16 Manage Static Files with Django
02:02:32 Django and Whitenoise for Static Files
02:07:26 Dashboard Templates & rav Install
02:18:47 Render a User’s Data from Models
02:24:00 Loop Database Data in Django Templates
02:25:54 Render Contacts through Flowbite Blocks
02:30:57 Custom Tailwind Theme Build (optional)
02:36:40 Contacts Detail Page and Get Absolute Url
02:45:50 Tracking Attention with an Event Model
02:55:40 Data Ownership through Foreign Keys
03:02:31 Generic Foreign Keys for Event Tracking
03:10:08 Using Django Signals to Create Events
03:15:52 Custom Django Signal To Track & Handle Events
03:28:04 Event Analytics Basics
03:33:04 Reverse Relationships in Generic Foreign Keys
03:37:14 TimescaleDB & Time-Series Postgres
03:38:40 Create TimescaleDB & Integrate to Django
03:46:38 Timescale Model for Event Tracking
03:51:05 Counting Event Types in Time Ranges
03:58:07 Using Timescale Time Buckets to Analyze Data
04:07:15 Fill Gaps in Data with Timescale
04:15:42 Group Event Types by Time Buckets
04:22:36 Django Template Tag for Analytics Data as JSON
04:30:25 Using Chartjs to Render Time Series Analytics Data
04:41:11 New Scopes for the Google People API
04:44:44 Helper Functions for the Google API
04:55:42 Verify the Google People API Functions
05:02:19 Parse Google API Results
05:05:24 Contact Sync Service Part 1
05:11:59 Contact Sync Service Part 2
05:19:05 Load Contacts with a Custom Django Management Command
05:26:18 Automate Google Contacts Sync with GitHub
05:47:27 Thank you and 2 Challenges
https://www.youtube.com/watch?v=zNyURLG9LIs
#entrepreneur #entrepreneurlife #businessowner #startup #founder #solopreneur #onlinebusiness #digitalbusiness #sidehustle #buildinpublic #financialfreedom #wealthbuilding #makeoneyonline #passiveincome #cashflow #moneytalks #richmindset #incomeideas #scalemindset #businessmindset #successmindset #growthmindset #discipline #consistency #selfimprovement #highperformance #focus #execution #anti9to5 #escapetheratace #buildassets #timefreedom #systemsovergoals #quietwealth #ownership #leverage #independence
