Global PRS
Global PRS is a unified registration system for all Isha programs worldwide. It provides a stable and flexible platform for managing program registrations across different regions.Key Features
Unified Platform
Single system for all Isha programs worldwide
Flexible Design
Customizable to meet regional requirements
Scalable Architecture
Independent scaling of system components
Secure Operations
Enterprise-grade security and compliance
User Roles
Participants
Program registration and management
Program Team
Program setup and configuration
Volunteers
Program execution and coordination
Support Teams
Marketing, finance, and legal support
Core Modules
Programs
Create and manage program offerings
Forms
Build custom registration forms
Flows
Design registration journeys
Fields
Configure data collection
Modular Design
Modular Design
Components are designed to be generic and modular. This modularity allows for updates or changes in one part of the system without necessitating a complete overhaul, enhancing maintainability and efficiency.
Scalability
Scalability
The architecture allows for horizontal scaling, particularly in the API layer, to handle increased load without stressing the Odoo systems.
Decoupled Workers
Decoupled Workers
Odoo workers are decoupled from the Odoo server, providing the flexibility to integrate other platforms for backend jobs in the future.
Integration Layer
Integration Layer
A separate external layer handles all integrations, allowing teams to build and manage necessary connections with other systems independently.
Security
Security
Enhanced security measures are enforced at the API layer to ensure that only authorized systems can submit forms and access data.
Guiding Principles
Participant-First Approach
Focus on participant needs when designing all aspects of the system, including what volunteers need to help participants.
Simple and Clean Experience
Ensure the system is intuitive and easy to navigate, requiring minimal orientation for new internal users.
Stability & Scale
The system should be able to scale up while staying stable and performing reliably.
Technology Stack
Management System
Odoo/Python
Database
PostgreSQL
Cache
Redis
API
Litestar/Python (Earlier Gin/Go)
Frontend
React/TypeScript
Workers
Celery/Python
Sample Data Flow
1
Program Setup in Odoo
Business team configures programs (forms, flows, fields) in Odoo, and the data is stored in PostgreSQL.
2
Pushing to Cache
Once saved, the form configurations are cached in Redis, reducing database queries and speeding up access.
3
Fetching Configurations via API
When a user accesses the registration form, the API retrieves the configuration from Redis and sends it to the frontend.
4
Rendering the Form
The frontend dynamically renders the form using the JSON configuration, providing a flexible and responsive interface.
5
Form Submission
Users fill out the form and submit it. The submission is sent to the API, with security measures like authentication for private APIs and WAF for public ones.
6
Data Saved to Database
The API processes the submission, storing basic info in PostgreSQL tables and dynamic responses as JSON.
7
View Registrations in Odoo
Program teams can immediately access submissions in Odoo and perform necessary actions.
8
Delayed Tasks via Workers
Tasks like sending confirmation emails or updating external systems are handled by Celery workers asynchronously.
9
Connected Apps
Other apps (e.g., MyMedic) use the same API to render forms and manage registrations.
Next Steps
User Types
Learn about the different user roles and their responsibilities in the Global PRS system
System Architecture
Understand the technical architecture and components of the Global PRS system
Fundamental Modules
Explore the core modules that make up the Global PRS system
Implementation Guides
Follow step-by-step guides to implement and use the Global PRS system
