Skip to content

Appgain Tech Knowledge Base - Complete Documentation

Table of Contents

  1. Company Overview
  2. System Architecture
  3. System Components
  4. Role-Based Guides
  5. Platform Overviews
  6. Getting Started
  7. 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

  1. Innovation - We continuously push the boundaries of what's possible
  2. Customer Success - Our success is measured by our customers' growth
  3. Data-Driven - Every decision is backed by data and analytics
  4. Scalability - Our solutions grow with your business
  5. 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:

  1. Version Control: Git, GitHub and GitHub Actions
  2. Course: https://www.udemy.com/course/git-github-and-github-actions-an-introduction/

  3. Database Fundamentals: MongoDB Essentials

  4. Course: https://www.udemy.com/course/mongodb-essentials/

  5. API Basics: Learn API Development with Flask MySQL in Python

  6. 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

  1. Complete Foundation Courses (Week 1)
  2. Finish all required Udemy courses
  3. Set up development environment
  4. Understand system architecture

  5. Role-Specific Training (Week 2)

  6. Complete role-specific courses
  7. Set up local development stack
  8. Create first project

  9. Hands-on Experience (Week 3)

  10. Work on real projects
  11. Participate in code reviews
  12. Learn monitoring tools

  13. Production Readiness (Week 4)

  14. Deploy to production
  15. Monitor and maintain systems
  16. 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.

Ask Chehab GPT