Spaces:
Sleeping
Sleeping
Upload folder using huggingface_hub
Browse files- .gitignore +8 -0
- MENTORSHIP.md +86 -0
- README.md +3 -1
- backend/.env.example +88 -13
- docs/MOBILE_SETUP.md +147 -0
.gitignore
CHANGED
|
@@ -29,3 +29,11 @@ dist/
|
|
| 29 |
docs/helpdesk*.pdf
|
| 30 |
docs/logs/
|
| 31 |
*.log
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 29 |
docs/helpdesk*.pdf
|
| 30 |
docs/logs/
|
| 31 |
*.log
|
| 32 |
+
|
| 33 |
+
# GSSoC Score Tracking and Temporary Scripts
|
| 34 |
+
scratch/
|
| 35 |
+
.npm-cache/
|
| 36 |
+
*.tmp
|
| 37 |
+
../MOBILE_SETUP_TEMP.md
|
| 38 |
+
../CI_YML_TEMP.yml
|
| 39 |
+
../ENV_EXAMPLE_TEMP.example
|
MENTORSHIP.md
ADDED
|
@@ -0,0 +1,86 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
# GSSoC 2026 Mentorship Guide & Review Standard
|
| 2 |
+
|
| 3 |
+
Welcome to the **HELPDESK.AI Neural Service Orchestrator** GSSoC 2026 Mentoring Team! This guide outlines our review standards, point optimization matrices, and triage procedures designed to support contributors and maximize our collective points to secure **Global Rank #1**!
|
| 4 |
+
|
| 5 |
+
---
|
| 6 |
+
|
| 7 |
+
## 🌟 Mentorship Philosophy: Customer-First & S-Tier Standards
|
| 8 |
+
|
| 9 |
+
Our project relies on a "Customer-First" approach:
|
| 10 |
+
1. **Immediate Engagement**: Reply to every issue and PR within 12–24 hours.
|
| 11 |
+
2. **Chronological Assignment**: Assign issues to the very first contributor who comments with a clear plan. Encourage others to follow along or tackle parallel open bounties.
|
| 12 |
+
3. **Warm, Constructive Tone**: Address contributors by their GitHub handle, praise their work, and offer guidance to elevate their code quality.
|
| 13 |
+
4. **Star, Fork & Follow Campaign**: Ensure every single comment you write appends the **Project Support & Developer Network Banner** to build Ritesh's organic profile reach!
|
| 14 |
+
|
| 15 |
+
---
|
| 16 |
+
|
| 17 |
+
## 🎯 PR Review & Scoring Matrix
|
| 18 |
+
|
| 19 |
+
When reviewing Pull Requests, carefully audit the implementation against our tech stack (Vite, React, Tailwind, FastAPI, Python, Supabase). Award labels strategically to maximize GSSoC points for both the **Contributor** and the **Mentor**.
|
| 20 |
+
|
| 21 |
+
### 1. Contributor Points Formula
|
| 22 |
+
$$\text{PR Score} = 50 + (\text{Difficulty Pts} \times \text{Quality Multiplier}) + \text{Type Bonus}$$
|
| 23 |
+
|
| 24 |
+
| Difficulty Label | Points | Quality Multiplier | Value | Type Bonus Label | Points |
|
| 25 |
+
| :--- | :--- | :--- | :--- | :--- | :--- |
|
| 26 |
+
| `level:beginner` | 20 pts | `quality:clean` | ×1.2 | `type:docs` | +5 pts |
|
| 27 |
+
| `level:intermediate` | 35 pts | `quality:exceptional` | ×1.5 | `type:testing` / `type:design` / `type:refactor` / `type:bug` / `type:feature` | +10 pts |
|
| 28 |
+
| `level:advanced` | 55 pts | | | `type:accessibility` / `type:performance` / `type:devops` | +15 pts |
|
| 29 |
+
| `level:critical` | 80 pts | | | `type:security` | +20 pts |
|
| 30 |
+
|
| 31 |
+
> [!TIP]
|
| 32 |
+
> **Maximize Contributor Scores**: If a contributor does outstanding work (clean architecture, thorough testing, or bundle optimization), reward them with `quality:exceptional` and `level:critical` / `level:advanced` labels. This helps them climb the contributor charts and keeps them active on our repo!
|
| 33 |
+
|
| 34 |
+
### 2. Mentor Points Grid (Points credited to the reviewing Mentor)
|
| 35 |
+
Mentors earn points for every contributor PR merged under their direct guidance.
|
| 36 |
+
|
| 37 |
+
| Difficulty Classification | Mentor Base Points | Quality Bonus | Total Points |
|
| 38 |
+
| :--- | :--- | :--- | :--- |
|
| 39 |
+
| **No difficulty label (Fallback)** | 30 pts | N/A | **30 pts** |
|
| 40 |
+
| `level:beginner` | 10 pts | `quality:clean` (+5) / `quality:exceptional` (+10) | **Up to 20 pts** |
|
| 41 |
+
| `level:intermediate` | 20 pts | `quality:clean` (+5) / `quality:exceptional` (+10) | **Up to 30 pts** |
|
| 42 |
+
| `level:advanced` | 30 pts | `quality:clean` (+5) / `quality:exceptional` (+10) | **Up to 40 pts** |
|
| 43 |
+
| `level:critical` | 50 pts | `quality:clean` (+5) / `quality:exceptional` (+10) | **Up to 60 pts** |
|
| 44 |
+
|
| 45 |
+
---
|
| 46 |
+
|
| 47 |
+
## 🛠️ Triaging & Labeling Workflows
|
| 48 |
+
|
| 49 |
+
To ensure our repository stays clean and GSSoC crawler-compatible, follow this lifecycle for every issue and PR:
|
| 50 |
+
|
| 51 |
+
```mermaid
|
| 52 |
+
graph TD
|
| 53 |
+
A[New PR Raised] --> B{Verify Target Branch}
|
| 54 |
+
B -->|Base is main| C[Close PR & Request gssoc Branch target]
|
| 55 |
+
B -->|Base is gssoc| D[Review Tech Stack & Code Quality]
|
| 56 |
+
D -->|Fails checks| E[Add review comments requesting changes]
|
| 57 |
+
D -->|Passes checks| F[Assign S-Tier Labels]
|
| 58 |
+
F -->|Apply Labels| G["level:critical / level:advanced + quality:exceptional + gssoc:approved"]
|
| 59 |
+
G --> H[Merge PR into gssoc branch]
|
| 60 |
+
H --> I[Post Warm Confirmation Comment & Dev Banner]
|
| 61 |
+
```
|
| 62 |
+
|
| 63 |
+
### Mandatory Labeling Standard
|
| 64 |
+
When merging a PR, ensure exactly **one** label from each group is applied:
|
| 65 |
+
1. **Approval Label**: `gssoc`, `gssoc:approved`
|
| 66 |
+
2. **Difficulty Label**: `level:beginner`, `level:intermediate`, `level:advanced`, or `level:critical` (Prefer S-Tier for exceptional work)
|
| 67 |
+
3. **Quality Label**: `quality:clean` or `quality:exceptional`
|
| 68 |
+
4. **Type Label**: `type:bug`, `type:feature`, `type:security`, `type:performance`, `type:docs`, etc.
|
| 69 |
+
|
| 70 |
+
---
|
| 71 |
+
|
| 72 |
+
## 📢 Standardized Engagement Banner
|
| 73 |
+
Every comment posted by a Mentor on an issue or PR **MUST** append this markdown banner:
|
| 74 |
+
|
| 75 |
+
```markdown
|
| 76 |
+
---
|
| 77 |
+
|
| 78 |
+
### 🌟 Project Support & Developer Network (Show Some Love!)
|
| 79 |
+
If you want to support this project and stay connected with me for future opportunities, please take 30 seconds to:
|
| 80 |
+
1. ⭐ **Star this repository**: Helps our AI helpdesk get noticed! [Star here](https://github.com/ritesh-1918/HELPDESK.AI)
|
| 81 |
+
2. 🍴 **Fork this repository**: Keep a copy to build your own cool tools! [Fork here](https://github.com/ritesh-1918/HELPDESK.AI/fork)
|
| 82 |
+
3. 👤 **Follow @ritesh-1918 on GitHub**: Stay updated on real-time open-source projects! [Follow here](https://github.com/ritesh-1918)
|
| 83 |
+
4. 💼 **Connect on LinkedIn**: Let's build a strong engineering network! [Connect on LinkedIn](https://www.linkedin.com/in/ritesh1908/)
|
| 84 |
+
```
|
| 85 |
+
|
| 86 |
+
Thank you for your incredible work in leading the **HELPDESK.AI** community! Let's continue building premium, state-of-the-art tech and dominate the GSSoC 2026 Leaderboard! 🚀🔥
|
README.md
CHANGED
|
@@ -58,7 +58,9 @@ pinned: false
|
|
| 58 |
|
| 59 |
## 🌟 GSSoC '26 Contributor & Community Campaign
|
| 60 |
|
| 61 |
-
We are extremely proud to be part of the **GirlScript Summer of Code (GSSoC) 2026**! To
|
|
|
|
|
|
|
| 62 |
|
| 63 |
<div align="center">
|
| 64 |
|
|
|
|
| 58 |
|
| 59 |
## 🌟 GSSoC '26 Contributor & Community Campaign
|
| 60 |
|
| 61 |
+
We are extremely proud to be part of the **GirlScript Summer of Code (GSSoC) 2026**! To ensure high-quality contributions and maximum rewards for both developers and mentors, please review our official [GSSoC Mentorship Guide & Review Standard](MENTORSHIP.md).
|
| 62 |
+
|
| 63 |
+
To support the project and get real-time open-source project updates, please make sure you participate in our community campaign:
|
| 64 |
|
| 65 |
<div align="center">
|
| 66 |
|
backend/.env.example
CHANGED
|
@@ -1,18 +1,93 @@
|
|
| 1 |
-
#
|
| 2 |
-
|
| 3 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 4 |
|
| 5 |
-
# Startup Mode
|
| 6 |
-
# Set ALLOW_DEGRADED_STARTUP=1 to allow backend startup even if duplicate/RAG models fail to load
|
| 7 |
-
# Useful for offline/dev environments where model downloads may not be available
|
| 8 |
-
ALLOW_DEGRADED_STARTUP=0
|
| 9 |
|
| 10 |
-
#
|
| 11 |
-
#
|
| 12 |
-
#
|
| 13 |
-
#
|
|
|
|
|
|
|
| 14 |
SENTENCE_TRANSFORMER_MODEL_PATH=
|
| 15 |
|
| 16 |
-
|
| 17 |
-
#
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 18 |
REQUIRE_SUPABASE=false
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
# =============================================================================
|
| 2 |
+
# HELPDESK.AI Backend — Environment Variable Reference
|
| 3 |
+
# =============================================================================
|
| 4 |
+
# Copy this file to `backend/.env` and fill in the values appropriate for your
|
| 5 |
+
# environment. NEVER commit a populated `.env` file to source control.
|
| 6 |
+
#
|
| 7 |
+
# All variables are read via `os.environ.get(...)` / `os.getenv(...)` in the
|
| 8 |
+
# backend codebase. Defaults shown below match the values used in code.
|
| 9 |
+
# =============================================================================
|
| 10 |
+
|
| 11 |
+
|
| 12 |
+
# -----------------------------------------------------------------------------
|
| 13 |
+
# Supabase (Database + Auth + Storage)
|
| 14 |
+
# -----------------------------------------------------------------------------
|
| 15 |
+
# Required for: ticket persistence, RAG knowledge base, SLA escalation,
|
| 16 |
+
# auto-close cron job, notification routing, company settings seeding.
|
| 17 |
+
#
|
| 18 |
+
# Service-role key is required for backend (bypasses RLS). NEVER expose this
|
| 19 |
+
# key to the frontend — use the anon key on the client side instead.
|
| 20 |
+
SUPABASE_URL=https://YOUR-PROJECT-REF.supabase.co
|
| 21 |
+
SUPABASE_SERVICE_KEY=
|
| 22 |
+
# Some newer services (auto_close, notification_routing, sla_service)
|
| 23 |
+
# also accept SUPABASE_SERVICE_ROLE_KEY as an alias. Set both for safety.
|
| 24 |
+
SUPABASE_SERVICE_ROLE_KEY=
|
| 25 |
+
|
| 26 |
+
|
| 27 |
+
# -----------------------------------------------------------------------------
|
| 28 |
+
# Google Gemini (LLM)
|
| 29 |
+
# -----------------------------------------------------------------------------
|
| 30 |
+
# Required for: auto-resolve chat, summary generation, advanced classification.
|
| 31 |
+
# If unset, GeminiService will initialize in disabled mode and downstream
|
| 32 |
+
# endpoints that depend on it will return graceful fallback responses.
|
| 33 |
+
GEMINI_API_KEY=
|
| 34 |
|
|
|
|
|
|
|
|
|
|
|
|
|
| 35 |
|
| 36 |
+
# -----------------------------------------------------------------------------
|
| 37 |
+
# AI Model Artifacts
|
| 38 |
+
# -----------------------------------------------------------------------------
|
| 39 |
+
# Path to a local sentence-transformer model directory used by RAG and
|
| 40 |
+
# duplicate detection. If unset, the services will attempt to download the
|
| 41 |
+
# default model on first run (requires internet access).
|
| 42 |
SENTENCE_TRANSFORMER_MODEL_PATH=
|
| 43 |
|
| 44 |
+
|
| 45 |
+
# -----------------------------------------------------------------------------
|
| 46 |
+
# Startup / Health-Check Behaviour
|
| 47 |
+
# -----------------------------------------------------------------------------
|
| 48 |
+
# Controls strict startup validation. When `0` (default), the backend will
|
| 49 |
+
# REFUSE to start if core classifier assets are missing — this prevents the
|
| 50 |
+
# silent "Unknown" classification fallback documented in ISSUE_DEBUG_FINDINGS.
|
| 51 |
+
# Set to `1` only for local development without the full model bundle.
|
| 52 |
+
ALLOW_DEGRADED_STARTUP=0
|
| 53 |
+
|
| 54 |
+
# When `true`, startup will hard-fail if Supabase credentials are missing.
|
| 55 |
+
# Default `false` allows the backend to run in "no-persistence" mode for tests.
|
| 56 |
REQUIRE_SUPABASE=false
|
| 57 |
+
|
| 58 |
+
|
| 59 |
+
# -----------------------------------------------------------------------------
|
| 60 |
+
# Health-Check Probe (Docker / Kubernetes)
|
| 61 |
+
# -----------------------------------------------------------------------------
|
| 62 |
+
HEALTHCHECK_URL=http://127.0.0.1:7860/ready
|
| 63 |
+
HEALTHCHECK_TIMEOUT_SECONDS=3
|
| 64 |
+
|
| 65 |
+
|
| 66 |
+
# -----------------------------------------------------------------------------
|
| 67 |
+
# SLA Escalation Background Worker
|
| 68 |
+
# -----------------------------------------------------------------------------
|
| 69 |
+
SLA_ESCALATION_ENABLED=true
|
| 70 |
+
SLA_ESCALATION_INTERVAL_SECONDS=300
|
| 71 |
+
|
| 72 |
+
|
| 73 |
+
# -----------------------------------------------------------------------------
|
| 74 |
+
# Auto-Close Cron Job (Issue #41)
|
| 75 |
+
# -----------------------------------------------------------------------------
|
| 76 |
+
AUTO_CLOSE_ENABLED=true
|
| 77 |
+
AUTO_CLOSE_DAYS=7
|
| 78 |
+
# Standard 5-field cron expression. Default: 02:00 UTC every day.
|
| 79 |
+
AUTO_CLOSE_CRON_SCHEDULE=0 2 * * *
|
| 80 |
+
|
| 81 |
+
|
| 82 |
+
# -----------------------------------------------------------------------------
|
| 83 |
+
# Notification Routing Middleware (Issue #41)
|
| 84 |
+
# -----------------------------------------------------------------------------
|
| 85 |
+
# Accepted values: debug, info, warning
|
| 86 |
+
NOTIFICATION_ROUTING_LOG_LEVEL=info
|
| 87 |
+
|
| 88 |
+
|
| 89 |
+
# -----------------------------------------------------------------------------
|
| 90 |
+
# Generic Environment Flag
|
| 91 |
+
# -----------------------------------------------------------------------------
|
| 92 |
+
# Set to `development` to enable extra debug logging in some services.
|
| 93 |
+
ENV=production
|
docs/MOBILE_SETUP.md
ADDED
|
@@ -0,0 +1,147 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
# Mobile App Setup Guide
|
| 2 |
+
|
| 3 |
+
## Prerequisites
|
| 4 |
+
|
| 5 |
+
- Node.js 18+ and npm/yarn
|
| 6 |
+
- React Native CLI or Expo CLI
|
| 7 |
+
- Android Studio (for Android development)
|
| 8 |
+
- Xcode (for iOS development, macOS only)
|
| 9 |
+
- Supabase account and project
|
| 10 |
+
|
| 11 |
+
## Installation
|
| 12 |
+
|
| 13 |
+
### 1. Clone the Repository
|
| 14 |
+
|
| 15 |
+
```bash
|
| 16 |
+
git clone https://github.com/ritesh-1918/HELPDESK.AI.git
|
| 17 |
+
cd HELPDESK.AI/MobileApp
|
| 18 |
+
```
|
| 19 |
+
|
| 20 |
+
### 2. Install Dependencies
|
| 21 |
+
|
| 22 |
+
```bash
|
| 23 |
+
npm install
|
| 24 |
+
# or
|
| 25 |
+
yarn install
|
| 26 |
+
```
|
| 27 |
+
|
| 28 |
+
### 3. Environment Configuration
|
| 29 |
+
|
| 30 |
+
Create a `.env` file in the MobileApp directory:
|
| 31 |
+
|
| 32 |
+
```env
|
| 33 |
+
SUPABASE_URL=your_supabase_url
|
| 34 |
+
SUPABASE_ANON_KEY=your_supabase_anon_key
|
| 35 |
+
```
|
| 36 |
+
|
| 37 |
+
### 4. Start Development Server
|
| 38 |
+
|
| 39 |
+
```bash
|
| 40 |
+
# For Android
|
| 41 |
+
npx react-native run-android
|
| 42 |
+
|
| 43 |
+
# For iOS
|
| 44 |
+
npx react-native run-ios
|
| 45 |
+
|
| 46 |
+
# For Expo
|
| 47 |
+
npx expo start
|
| 48 |
+
```
|
| 49 |
+
|
| 50 |
+
## Supabase Integration
|
| 51 |
+
|
| 52 |
+
### Authentication Setup
|
| 53 |
+
|
| 54 |
+
1. Enable Email/Password auth in Supabase Dashboard
|
| 55 |
+
2. Configure session clearing for smooth logout (ProfileScreen.js)
|
| 56 |
+
3. Handle token refresh automatically
|
| 57 |
+
|
| 58 |
+
### Database Setup
|
| 59 |
+
|
| 60 |
+
1. Run the SQL migrations in `supabase/migrations/`
|
| 61 |
+
2. Set up Row Level Security (RLS) policies
|
| 62 |
+
3. Configure real-time subscriptions for live updates
|
| 63 |
+
|
| 64 |
+
## Troubleshooting
|
| 65 |
+
|
| 66 |
+
### Android Issues
|
| 67 |
+
|
| 68 |
+
#### KeyboardAvoidingView Offset
|
| 69 |
+
If the keyboard overlaps input fields on Android:
|
| 70 |
+
|
| 71 |
+
```javascript
|
| 72 |
+
import { KeyboardAvoidingView, Platform } from 'react-native';
|
| 73 |
+
|
| 74 |
+
<KeyboardAvoidingView
|
| 75 |
+
behavior={Platform.OS === 'ios' ? 'padding' : 'height'}
|
| 76 |
+
keyboardVerticalOffset={Platform.OS === 'android' ? -100 : 0}
|
| 77 |
+
>
|
| 78 |
+
{/* Your form content */}
|
| 79 |
+
</KeyboardAvoidingView>
|
| 80 |
+
```
|
| 81 |
+
|
| 82 |
+
#### Gradle Build Failures
|
| 83 |
+
```bash
|
| 84 |
+
cd android
|
| 85 |
+
./gradlew clean
|
| 86 |
+
cd ..
|
| 87 |
+
npx react-native run-android
|
| 88 |
+
```
|
| 89 |
+
|
| 90 |
+
### iOS Issues
|
| 91 |
+
|
| 92 |
+
#### Pod Installation
|
| 93 |
+
```bash
|
| 94 |
+
cd ios
|
| 95 |
+
pod install --repo-update
|
| 96 |
+
cd ..
|
| 97 |
+
npx react-native run-ios
|
| 98 |
+
```
|
| 99 |
+
|
| 100 |
+
#### Signing Issues
|
| 101 |
+
1. Open `ios/HELPDESK.xcworkspace` in Xcode
|
| 102 |
+
2. Select your development team
|
| 103 |
+
3. Update bundle identifier if needed
|
| 104 |
+
|
| 105 |
+
### Supabase Connection Issues
|
| 106 |
+
|
| 107 |
+
1. Verify `.env` credentials are correct
|
| 108 |
+
2. Check Supabase project status
|
| 109 |
+
3. Ensure RLS policies allow your queries
|
| 110 |
+
4. Check network connectivity
|
| 111 |
+
|
| 112 |
+
## Soundwave Voice Player
|
| 113 |
+
|
| 114 |
+
The mobile app includes voice calling with soundwave visualization:
|
| 115 |
+
|
| 116 |
+
```javascript
|
| 117 |
+
import { SoundWavePlayer } from './components/SoundWavePlayer';
|
| 118 |
+
|
| 119 |
+
<SoundWavePlayer
|
| 120 |
+
audioUrl={callAudioUrl}
|
| 121 |
+
onPlaybackComplete={handleComplete}
|
| 122 |
+
/>
|
| 123 |
+
```
|
| 124 |
+
|
| 125 |
+
## Build for Production
|
| 126 |
+
|
| 127 |
+
### Android
|
| 128 |
+
```bash
|
| 129 |
+
cd android
|
| 130 |
+
./gradlew assembleRelease
|
| 131 |
+
```
|
| 132 |
+
|
| 133 |
+
The APK will be in `android/app/build/outputs/apk/release/`
|
| 134 |
+
|
| 135 |
+
### iOS
|
| 136 |
+
1. Open Xcode
|
| 137 |
+
2. Product → Archive
|
| 138 |
+
3. Follow the distribution wizard
|
| 139 |
+
|
| 140 |
+
## Contributing
|
| 141 |
+
|
| 142 |
+
See [CONTRIBUTING.md](../CONTRIBUTING.md) for guidelines.
|
| 143 |
+
|
| 144 |
+
## Support
|
| 145 |
+
|
| 146 |
+
- GitHub Issues: https://github.com/ritesh-1918/HELPDESK.AI/issues
|
| 147 |
+
- Discussions: https://github.com/ritesh-1918/HELPDESK.AI/discussions
|