Appgain Tech Knowledge Base - Complete Documentation¶
Table of Contents¶
- Company Overview
- System Architecture
- System Components
- Role-Based Guides
- Platform Overviews
- Getting Started
- Resources
Company Overview¶
About Appgain¶
Appgain is a comprehensive marketing technology company that provides AI-powered solutions for businesses of all sizes. Our mission is to enable businesses to grow their digital presence, engage customers effectively, and drive sustainable revenue growth through innovative technology and data-driven insights.
Our Platforms¶
- Appgain.io - Core marketing platform for mobile app marketing optimization
- Shrinkit - E-commerce marketing arsenal with URL shortening and automation
- ShopiApp - Mobile app creation for e-commerce businesses
- Retail Gain - All-in-one retail solution
- iKhair - Donation payment platform
Our Values¶
- Innovation - We continuously push the boundaries of what's possible
- Customer Success - Our success is measured by our customers' growth
- Data-Driven - Every decision is backed by data and analytics
- Scalability - Our solutions grow with your business
- Reliability - Enterprise-grade infrastructure and support
Professional Development Requirements¶
Email Signature Setup¶
All team members must have a professional email signature that represents Appgain's brand standards.
How to Create Your Email Signature: 1. Use HubSpot's Email Signature Generator: https://www.hubspot.com/email-signature-generator 2. Request Headshot: Contact HR for your professional headshot image 3. Include Required Elements: - Full name and job title - Company name (Appgain) - Professional email address - Direct phone number (if applicable) - Company logo - LinkedIn profile link - Company website link
LinkedIn Profile Update¶
All team members must maintain an updated and professional LinkedIn profile.
Required LinkedIn Updates: 1. Professional Headshot: Upload your professional headshot (request from HR) 2. Current Position: Update job title and company information 3. Company Description: Include accurate role description and responsibilities 4. Skills & Endorsements: Add relevant technical skills and certifications 5. Company Connection: Connect with Appgain company page 6. Regular Updates: Keep profile current with latest projects and achievements
System Architecture¶
Overview¶
The Appgain platform is built on a microservices architecture with the following key components:
Core Infrastructure Components¶
| Component | Purpose | Technology | Scale |
|---|---|---|---|
| API Gateway | Request routing, authentication | KONG | Multi-instance |
| Appgain Server | Core business logic, CRM, analytics | Node.js, Express | Multi-tenant |
| Parse Server | Backend-as-a-Service, multi-tenant | Node.js, Parse | Per-app isolation |
| Notify Service | Push notifications, messaging | Node.js, FCM/APN | High throughput |
| Automator | Workflow automation, triggers | Python, Celery | Event-driven |
| Admin Server | Management interface | Flask, React | Admin access |
| Email Platform | Self-hosted email server | Mailu, Docker | Multi-tenant |
| Data Storage | Primary data, analytics, cache | MongoDB, PostgreSQL, Redis | Clustered |
Server Infrastructure¶
Production Application Servers¶
| Server | Purpose | Services |
|---|---|---|
| ovh-appgain-server | Main Appgain application server | Core backend services |
| ovh-parse-server | Parse server and production APIs | Parse Server, Notify API |
| ovh-devops | DevOps and staging environment | CI/CD, staging deployments |
| ovh-growthmachine | Growth analytics and ML | Jupyter, data processing |
| ovh-kong | API Gateway | KONG, load balancing |
| ovh-preprod | Pre-production environment | Testing, validation |
| ovh-pushsender | Push notification service | FCM, APNs delivery |
| ovh-shrinkit | Shrinkit.me application | URL shortening service |
| ovh-spinsys | Spinsys application | Specialized service |
| ovh-ikhair | iKhair donation payment platform | Donation payment analytics |
| OVH-efs | Shared file storage | EFS, file management |
| ovh-wasl | Wasl application server | Wasl platform |
| ovh-wasl-db | Wasl database server | Database for Wasl |
| ovh-wasl-devops | Wasl DevOps environment | Wasl CI/CD |
Database Servers¶
| Server | Purpose | Services |
|---|---|---|
| ovh-mongo-master | MongoDB primary | Master database |
| ovh-mongo-slave1 | MongoDB replica 1 | Database replication |
| ovh-mongo-slave2 | MongoDB replica 2 | Database replication |
| ovh-ikhair-db | iKhair database | Donation payment data |
| ovh-airbyte | Data pipeline orchestration | ETL, data integration |
Cloud Infrastructure¶
| Server | Purpose | Services |
|---|---|---|
| OVH-efs | OVH EFS storage | Cloud file storage |
| zafra-apps | Zafra applications | Azure-hosted apps |
| zafra-db | Zafra database | Azure database |
| ihsan-app | Ihsan application | Healthcare platform |
| ihsan-db | Ihsan database | Healthcare data |
ERP Systems¶
| Server | Purpose | Services |
|---|---|---|
| odoo-preprod | Odoo pre-production | ERP testing |
| odoo-prod | Odoo production | Live ERP system |
Monitoring & Observability¶
| Tool | URL | Credentials | Purpose |
|---|---|---|---|
| Prometheus | http://monitor.instabackend.io:9090 | N/A | Metrics collection |
| Grafana | http://monitor.instabackend.io:3003 | ask your direct manager for the access | Dashboards & alerts |
| Status Page | https://status.instabackend.io/ | Public | System status |
| Alertmanager | http://monitor.instabackend.io:9093 | N/A | Alert management |
System Components¶
API Gateway (KONG)¶
The KONG API Gateway serves as the entry point for all external requests, providing authentication, rate limiting, and request routing.
Key Features: - JWT token validation - API key authentication - Rate limiting and throttling - Request/response transformation - Load balancing - SSL termination
Service Routes: - Appgain Server: /api/v1/* → ovh-appgain-server:3000 - Parse Server: /parse/* → ovh-parse-server:1337 - Notify Service: /notify/* → ovh-parse-server:3001 - Admin Server: /admin/* → ovh-devops:5000 - Shopify Backend: /shopify/* → ovh-shopify-backend:8456
Appgain Server¶
The core application server handling business logic, CRM functionality, and analytics.
Technology Stack: - Node.js with Express framework - MongoDB for data storage - Redis for caching and sessions - JWT for authentication - Prometheus for monitoring
Key Features: - Multi-tenant architecture - User management and authentication - Account and suit management - Analytics and reporting - API endpoints for all core functionality
Parse Server¶
Backend-as-a-Service framework providing mobile app backend functionality.
Architecture Types:
1. App Boost Suits (Mobile App Focus)¶
- Platform: Appgain only
- User Management: Self-registered users (created by support/sales team ONLY)
- Architecture: Dedicated Parse Server per suit
- Database: Dedicated database per suit
- Cloud Functions: Unique per suit with custom main.js
2. App Marketing Suits (Web/Store Focus)¶
- Platforms: Appgain (retail-gain/charity projects) and Shrinkit (store integrations)
- User Management:
- Appgain: Self-registered users (created by support/sales team ONLY)
- Shrinkit: External integration users (created by partner integrations ONLY)
- Architecture: Shared Parse Server across all suits
- Database: Shared with namespaced collections
- Cloud Functions: Shared across all suits
Notify Service¶
Handles all communication delivery including push notifications, emails, SMS, and WhatsApp.
Supported Channels: - Push notifications (FCM/APNs) - Email (SMTP) - SMS (Twilio, RouteMobile) - WhatsApp (WhatsApp Business API) - Web push notifications
Features: - Multi-channel delivery - Template management - Delivery tracking - Rate limiting - A/B testing support
Automator Engine¶
Workflow automation engine that handles complex business logic and campaign automation.
Technology Stack: - Python with Celery - Redis for task queue - MongoDB for workflow storage - Prometheus for monitoring
Features: - Visual journey builder - Event-driven triggers - Multi-channel campaigns - A/B testing - Analytics integration
Admin Server¶
Management interface for system administration and operational tasks.
Technology Stack: - Flask (Python) backend - React frontend - MongoDB for data storage - JWT authentication
Features: - User management - System monitoring - Configuration management - Deployment automation - Analytics dashboard
Email Platform (Mailu)¶
Self-hosted email server replacing AWS SES for better control and cost efficiency.
Features: - SMTP, IMAP, POP3 support - REST API integration - SSL/TLS encryption - DKIM and DMARC support - Multi-tenant setup - Email warm-up system
Internal CDN¶
File storage and delivery system built on OVH infrastructure.
Features: - Global file distribution - Image optimization - Video streaming - File browser interface - Access control - Backup and redundancy
Task Queue¶
Asynchronous job processing system for handling background tasks.
Priority Levels: - Critical (Level 1): < 30 seconds, 5 retries - High (Level 2): < 2 minutes, 3 retries - Normal (Level 3): < 5 minutes, 5 retries - Low (Level 4): < 30 minutes, 10 retries - Batch (Level 5): 30+ minutes, 2 retries
Use Cases: - Payment processing - Email campaigns - Data synchronization - Analytics processing - Report generation - Data cleanup
Push Sender¶
Specialized service for push notification delivery with high throughput.
Features: - FCM and APNs integration - Delivery tracking - Token management - A/B testing - Analytics integration - Rate limiting
Shrinkit Shopify Backend¶
E-commerce automation platform for Shopify integration.
Features: - Shopify app development - Order management - Inventory synchronization - Customer segmentation - Marketing automation - Analytics and reporting
WhatsApp Lite Channel¶
Containerized microservice for WhatsApp messaging using whatsapp-web.js.
Features: - Docker-based deployment - High-volume messaging - Quota management (300 messages/day per suit) - Multi-media support - Campaign integration - Session persistence
Role-Based Guides¶
AI Engineer¶
AI Engineers are at the forefront of our AI initiatives, ensuring privacy-compliant, high-performance AI solutions that enhance our platform capabilities.
Key Responsibilities: - Deploy and maintain AI models (LLAMA, Mistral, Gemma2) - Implement privacy-compliant AI solutions - Integrate AI with existing systems - Monitor AI performance and metrics - Develop AI-powered features
Technology Stack: - Ollama for local model deployment - LangChain for AI workflows - Python for AI development - Docker for containerization - Prometheus for monitoring
Learning Path: - Week 1: Foundation courses, local environment setup - Week 2: Deploy first AI model, create simple AI API - Week 3: Optimize model performance, implement privacy controls - Week 4: Deploy to production, monitor and maintain
Backend Engineer¶
Backend Engineers build the robust server-side infrastructure that powers our platform's core functionality and business logic.
Key Responsibilities: - Develop and maintain API endpoints - Design database schemas - Implement authentication and authorization - Optimize performance and scalability - Monitor and debug production systems
Technology Stack: - Node.js with Express - MongoDB and PostgreSQL - Redis for caching - JWT for authentication - Docker for containerization
Learning Path: - Week 1: Backend foundation courses, development environment - Week 2: Create first API endpoint, set up database schema - Week 3: Optimize database queries, implement caching - Week 4: Deploy to production, monitor performance
Data Engineer¶
Data Engineers build and maintain the data infrastructure that powers our analytics, insights, and AI capabilities across the entire platform.
Key Responsibilities: - Design and maintain data pipelines - Implement data quality checks - Optimize data processing performance - Create analytics dashboards - Ensure data governance and privacy
Technology Stack: - Airbyte for data integration - Spark for data processing - PostgreSQL for analytics - Redis for caching - Prometheus for monitoring
Learning Path: - Week 1: Data engineering foundation courses - Week 2: Build first data pipeline, set up monitoring - Week 3: Optimize data processing, implement data governance - Week 4: Deploy to production, monitor and maintain
DevOps Engineer¶
DevOps Engineers are the backbone of our infrastructure, ensuring reliable, scalable, and secure systems that power our entire platform.
Key Responsibilities: - Manage server infrastructure - Implement CI/CD pipelines - Monitor system performance - Handle security and compliance - Automate deployment processes
Technology Stack: - Docker and Kubernetes - GitLab CI/CD - Prometheus and Grafana - Nginx and Apache - Linux system administration
Learning Path: - Week 1: DevOps foundation courses, infrastructure understanding - Week 2: Deploy first service, set up monitoring - Week 3: Optimize system performance, implement security - Week 4: Manage production systems, handle incidents
Frontend Engineer¶
Frontend Engineers create exceptional user experiences and implement responsive, accessible web interfaces.
Key Responsibilities: - Develop responsive web applications - Implement user interface designs - Optimize frontend performance - Ensure accessibility compliance - Integrate with backend APIs
Technology Stack: - React 18 with TypeScript - Next.js for SSR - Material-UI for components - Webpack for bundling - Jest for testing
Learning Path: - Week 1: Frontend foundation courses, React basics - Week 2: Create responsive components, implement designs - Week 3: Optimize performance, add comprehensive testing - Week 4: Deploy to production, monitor user experience
Mobile Engineer¶
Mobile Engineers create native and cross-platform mobile applications that deliver exceptional user experiences on iOS and Android devices.
Key Responsibilities: - Develop native iOS and Android apps - Integrate Appgain Mobile SDK - Implement push notifications - Create deep linking functionality - Optimize app performance
Technology Stack: - React Native for cross-platform - Native iOS (Swift/Objective-C) - Native Android (Kotlin/Java) - Appgain Mobile SDK - Firebase for push notifications
Learning Path: - Week 1: Mobile development fundamentals, SDK integration - Week 2: Integrate Android and iOS SDKs, set up push notifications - Week 3: Implement custom push receivers, optimize performance - Week 4: Deploy to app stores, monitor and maintain
Fullstack Engineer¶
Fullstack Engineers are the bridge between frontend and backend, ensuring seamless integration and optimal user experiences across our platform.
Key Responsibilities: - Develop end-to-end applications - Integrate frontend and backend systems - Implement real-time features - Optimize full-stack performance - Ensure data consistency
Technology Stack: - React for frontend - Node.js for backend - MongoDB for database - WebSockets for real-time - Docker for deployment
Learning Path: - Week 1: Fullstack foundation courses, React and Node.js basics - Week 2: Create full-stack application, implement authentication - Week 3: Optimize performance, implement real-time features - Week 4: Deploy full-stack application, monitor performance
Project Manager¶
Project Managers coordinate development efforts, manage timelines, and ensure successful delivery of features and projects.
Key Responsibilities: - Plan and coordinate development projects - Manage team resources and timelines - Track project progress and metrics - Facilitate communication between teams - Ensure quality and delivery standards
Skills Required: - Agile/Scrum methodologies - Project management tools (JIRA, GitLab) - Team coordination and communication - Risk management and mitigation - Stakeholder management
Support & Testing Engineer¶
Support & Testing Engineers combine technical expertise with customer service skills to ensure platform quality and provide excellent user support.
Key Responsibilities: - Provide technical support to customers - Debug and troubleshoot issues - Write and maintain automated tests - Perform manual testing - Document solutions and procedures
Technology Stack: - Jest for unit testing - Cypress for E2E testing - Postman for API testing - Monitoring tools (Sentry, Grafana) - Support tools and ticketing systems
Learning Path: - Week 1: Support and testing foundation courses - Week 2: Handle basic support tickets, write first tests - Week 3: Handle complex issues, implement comprehensive test suites - Week 4: Handle all support scenarios, deploy testing to production
Platform Overviews¶
Appgain.io Platform¶
The core marketing platform providing comprehensive solutions for mobile app marketing and growth.
Key Features: - Mobile SDK integration - Push notification management - Deep linking capabilities - Analytics and reporting - Campaign automation - User segmentation
Technology Stack: - Node.js backend - React frontend - MongoDB database - Redis caching - FCM/APNs for push notifications
Shrinkit Platform¶
E-commerce marketing automation platform focused on URL shortening and marketing automation.
Key Features: - URL shortening service - Web push notifications - SMS marketing - Email marketing - WhatsApp Business integration - Shopify integration
Technology Stack: - Next.js frontend - Node.js backend - MongoDB database - AWS infrastructure - REST APIs for integrations
iKhair Platform¶
Donation payment platform for charitable organizations and fundraising campaigns.
Key Features: - Donation processing - Payment gateway integration - Campaign management - Donor analytics - Receipt generation - Multi-currency support
Technology Stack: - Node.js backend - React frontend - PostgreSQL database - Stripe payment processing - Analytics integration
RetailGain Platform¶
All-in-one retail solution for brick-and-mortar and online retail businesses.
Key Features: - Inventory management - Customer relationship management - Marketing automation - Analytics and reporting - Multi-channel integration - Loyalty programs
Technology Stack: - React frontend - Node.js backend - MongoDB database - Redis caching - Third-party integrations
Getting Started¶
Foundation Requirements¶
All team members must complete these foundation courses:
- Version Control: Git, GitHub and GitHub Actions
-
Course: https://www.udemy.com/course/git-github-and-github-actions-an-introduction/
-
Database Fundamentals: MongoDB Essentials
-
API Basics: Learn API Development with Flask MySQL in Python
- Course: https://www.udemy.com/course/learn-api-development-with-flask-mysql-in-python/
Development Environment Setup¶
Required Tools: - Git for version control - Node.js 18+ for backend development - Python 3.8+ for AI and automation - Docker for containerization - MongoDB for local development - Redis for caching
IDE Recommendations: - VS Code with extensions - IntelliJ IDEA for Java development - PyCharm for Python development - Xcode for iOS development - Android Studio for Android development
System Access¶
Essential Access Points: - GitLab repositories - Monitoring dashboards (Grafana) - Issue tracking (JIRA) - Documentation (Confluence) - Development servers - Production monitoring
Credentials: - All credentials should be requested from your direct manager - Never share credentials in documentation - Use secure password managers - Enable 2FA where available
Quick Start Guide¶
- Complete Foundation Courses (Week 1)
- Finish all required Udemy courses
- Set up development environment
-
Understand system architecture
-
Role-Specific Training (Week 2)
- Complete role-specific courses
- Set up local development stack
-
Create first project
-
Hands-on Experience (Week 3)
- Work on real projects
- Participate in code reviews
-
Learn monitoring tools
-
Production Readiness (Week 4)
- Deploy to production
- Monitor and maintain systems
- Share knowledge with team
Resources¶
Learning Resources¶
Online Courses: - Udemy courses for foundation knowledge - Role-specific training materials - Video tutorials and webinars - Best practices documentation
Documentation: - Confluence space for detailed documentation - GitLab repositories for source code - API documentation and Postman collections - Monitoring dashboards and alerts - AppGain Microservice Development Blueprint - Complete guide to building microservices following AppGain standards
Support & Contacts¶
Technical Support: - Team leads for role-specific questions - DevOps team for infrastructure issues - Senior engineers for complex problems - Emergency procedures for critical issues
Communication Channels: - Slack for team communication - JIRA for issue tracking - GitLab for code collaboration - Email for formal communication
Emergency Procedures¶
System Down: 1. Contact DevOps team immediately 2. Check monitoring dashboards 3. Follow incident response procedures 4. Communicate status to stakeholders
Security Incident: 1. Follow security protocol 2. Document incident details 3. Notify security team 4. Implement remediation measures
Customer Impact: 1. Notify support team 2. Assess impact scope 3. Communicate with customers 4. Implement temporary solutions
Monitoring & Alerts¶
Key Metrics to Monitor: - System response times - Error rates and availability - Database performance - API endpoint health - User engagement metrics
Alert Channels: - Email notifications - Slack alerts - SMS for critical issues - PagerDuty for on-call
Success Metrics¶
Week 1 Success Indicators¶
- Foundation courses completed
- Development environment working
- Can access all necessary systems
- Understand basic architecture
Week 2 Success Indicators¶
- First task completed successfully
- Comfortable with role-specific tools
- Can deploy basic changes
- Integrated with team workflow
Week 3 Success Indicators¶
- Medium-complexity feature delivered
- Active participation in code reviews
- Understanding of monitoring systems
- Documentation contributions made
Week 4 Success Indicators¶
- Can lead technical discussions
- End-to-end feature development capability
- Role-specific monitoring in place
- Process improvement suggestions made
Additional Information¶
Company Policy¶
All team members must review and understand our company policies and procedures. The company policy document is available through the main documentation portal.
Professional Development¶
- Maintain updated LinkedIn profiles
- Use professional email signatures
- Participate in team knowledge sharing
- Contribute to documentation improvements
Security Best Practices¶
- Never share credentials in documentation
- Use secure password managers
- Enable 2FA on all accounts
- Follow security protocols for incidents
- Report security concerns immediately
Quality Standards¶
- Write clean, maintainable code
- Include comprehensive tests
- Document all changes
- Follow coding standards
- Participate in code reviews
This comprehensive knowledge base provides all the essential information needed for team members to understand our platform, architecture, and processes. For specific technical details, refer to the individual component documentation pages.