ritesh19180 commited on
Commit
8e8ba61
·
verified ·
1 Parent(s): 1ff1213

Upload folder using huggingface_hub

Browse files
Files changed (5) hide show
  1. .gitignore +8 -0
  2. MENTORSHIP.md +86 -0
  3. README.md +3 -1
  4. backend/.env.example +88 -13
  5. 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 support the project and get real-time open-source project updates, please make sure you participate in our community campaign:
 
 
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
- # Supabase Configuration
2
- SUPABASE_URL=https://your-project.supabase.co
3
- SUPABASE_SERVICE_KEY=your-service-key
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
- # Sentence Transformers Model Path
11
- # Provide a local path to the sentence-transformers model to avoid downloading from HuggingFace
12
- # If not set, model will be downloaded from HuggingFace (requires internet)
13
- # Example: ./models/all-MiniLM-L6-v2 or /opt/models/all-MiniLM-L6-v2
 
 
14
  SENTENCE_TRANSFORMER_MODEL_PATH=
15
 
16
- # Readiness Check
17
- # Set REQUIRE_SUPABASE=true to include Supabase configuration in the strict readiness gate
 
 
 
 
 
 
 
 
 
 
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