This project was created because we use Zoho CRM to manage all participants in the H2W activities. It serves as a centralized middleware ecosystem ensuring that under the same system we manage the speakers, sponsors, members, and participant pay/VIP to the events[cite: 1].
The core of this repository is a decoupled architecture—featuring a React "Front Desk" UI and a Python "Back Office" Worker—designed to eliminate data silos between e-commerce and CRM platforms.
I had to customize the system to answer the needs of the organization, and link it to other services to automate communications like confirmation of registrations and purchase[cite: 1].
- Process Automation: In this project in special the objective was to automate the purchase registration process.
- Data Engineering for Analytics: A critical objective was to also organize and process the information for analysis.
- Scalability: Built a resilient background polling engine that prevents system crashes during high-traffic ticket sales and safely logs all synchronization events.
This project is built using a modern, decoupled stack to separate background data processing from the user interface.
- Backend Engine (Python/FastAPI): Handles the core logic, API endpoints (
app/main.py), and the continuous background polling loop (app/worker.py). - Frontend UI (React/TypeScript): The
app/frontend/directory contains a secure, role-based dashboard for the event team to manage events, track invitations, and view analytics. - Integrations: Custom API clients for WooCommerce (
app/woo_utils.py) and Zoho CRM (core/zoho_client.py). - Database: PostgreSQL database managed via custom migration scripts (
migrate_db.py) to store synchronization logs, user credentials, and cached event data. - Deployment: Pre-configured for cloud deployment on Railway using
Procfileandnixpacks.toml.
When a user purchases a ticket or registers as a VIP, the application runs a complex 3-step synchronization job (main_sync.py & event_sync.py):
- Captures the WooCommerce order payload.
- Creates or updates the Contact in Zoho CRM.
- Generates the associated Deal and maps it to the correct Event Participation module.
To ensure clean data for future analytics, the system relies on strict schema mapping. Included in the repository are dictionary generators (generate_docx_dictionary.py) and schema extraction tools (extract_zoho_schema.py) to maintain perfect alignment between WooCommerce variables and Zoho CRM fields.
A custom web interface allowing administrators to:
- View 7-day and 30-day registration analytics.
- Manually override or audit data synchronization (
AdminSettingsScreen.tsx). - Manage customized event parameters and generate automated reports (
EventManagementScreen.tsx).
- Python 3.9+
- Node.js & npm (for the frontend)
- PostgreSQL database