๐ Official Selected Project for ECSoC 2026 (Elite Coders Summer of Code) & OSCI 2026 (Open Source Contribution India) ๐
WorkSphere is an autonomous multi-agent ecosystem engineered for remote professionals, digital nomads, and distributed teams.
Discover top-tier cafes, coworking spaces, and quiet libraries dynamically ranked on WiFi speeds, power outlet density, real-time noise metrics, and live seating occupancy.
๐ Launch Live Demo โข โจ Features โข ๐๏ธ Architecture โข โก Quickstart โข ๐ฅ Contributors (99) โข ๐ Report Issue
| Role | Leader | GitHub | Badges |
|---|---|---|---|
| ๐ Founder & Lead Architect / CTO | Satyam Pandey | @SatyamPandey-07 |
Tip
Issue Claiming & Auto-Merge Workflow:
- Post
/claimon any open issue to auto-assign it to yourself (limit: up to 10 active issues, 6-day completion window). - Post
/unclaimon an issue to unassign yourself if you need to release it for other contributors! - When opening a PR, link the issue (e.g.
Closes #123). Our CI will automatically approve and squash-merge your PR with co-author credit!
A massive thank you to all 99 brilliant contributors and bots building WorkSphere! ๐
- Features
- Tech Stack
- Architecture
- Getting Started
- Environment Variables
- Testing
- Pages
- API Routes
- Multi-Agent System
- Project Structure
- Future Improvements
- Contributing
- License
- Natural Language Queries: "Find a quiet cafe with good WiFi near me"
- Smart Intent Understanding: Extracts work type, amenities, location preferences
- Intelligent Scoring: Ranks venues based on work-friendliness criteria
The chatbot supports voice-to-text via the Web Speech API:
| Browser | Voice Input |
|---|---|
| Chrome 33+ | โ Supported |
| Edge 79+ | โ Supported |
| Safari (desktop/mobile) | โ Supported (webkit prefix) |
| Firefox Stable | |
| Firefox Nightly |
Firefox users: The Web Speech API is disabled by default. To enable it:
- Navigate to
about:configin Firefox. - Search for
media.webspeech.recognition.enableand set it totrue. - Reload the application.
When voice input is unavailable, a clear warning banner is displayed and the feature degrades gracefully โ the text input remains fully functional.
- Dark Theme: Beautiful CartoDB Dark Matter tiles
- Real-time Markers: Purple glowing venue markers with venue photos
- Green Route Lines: Real road routing with OSRM (not straight lines)
- User Location: Custom marker with Clerk user avatar
- Auto-centering: Map adjusts to show search results
- Dark Popups: Styled popups matching the theme
- Server-Sent Events (SSE): Live venue data pushed from server to client
- Live Ratings: See new reviews appear instantly without refreshing
- Availability Updates: Crowd levels update in real-time
- Stable Connections: Smart reconnect logic prevents connection spam
- Pexels Integration: High-quality venue photos via Pexels API
- Server-side Proxy: API key never exposed to the browser
- DB Caching: Each venue fetched once, then served from cache
- Lazy Loading: Skeleton shimmer while photo loads, graceful fallback on error
- Free tier: 20,000 requests/month, no billing required
- OpenStreetMap Integration: Real venue data from OSM Overpass API
- Amenities Display: WiFi, outdoor seating, accessibility from OSM
- Opening Hours: Real business hours when available
- No Credit Card Required: All APIs are completely free
- OSRM Integration: Actual road paths instead of straight lines
- Turn-by-turn Geometry: Realistic routes on the map
- Distance Calculation: Accurate road distance to venues
- Multiple Profiles: Walking, driving, cycling routes
- 5 Specialized AI Agents working together:
- Orchestrator โ Context โ Data โ Reasoning โ Action
- Transparent Reasoning: See each agent's thought process
- Parallel Processing: Efficient query handling
- Favorites System: Save frequently visited spots
- Crowdsourced Ratings: Rate venues on WiFi quality, outlets, noise levels, quietness
- Rating Dialog: Beautiful modal with 5-star ratings for each amenity
- Conversation History: Resume previous searches
- Venue Suggestions: Submit new venues via modal form
- Profile Dashboard: Complete analytics dashboard showing booking history
- "NEURAL LEDGER": Futuristic booking history with confirmation IDs, dates, venue details
- Download Receipts: PDF receipts for each booking with automatic download
- View on Map: External link button to view booked venues on the interactive map
- Booking Status: Visual status badges (Confirmed, Pending, Cancelled)
- Clerk Integration: Secure sign-in/sign-up
- User Profiles: Personalized experience
- Webhook Sync: Real-time user data updates
- Serverless-Compatible: Uses pdf-lib (not PDFKit) for AWS Lambda compatibility
- Instant Generation: PDF receipts generated on-demand for confirmed bookings
- Professional Format: Includes venue details, booking info, confirmation ID, timestamps
- Embedded Fonts: Helvetica and HelveticaBold loaded from pdf-lib (no filesystem dependencies)
- Direct Download: One-click download with loading states and error handling
- Fixed Build Issues: Resolved Buffer/Uint8Array compatibility and cuid ID string handling
- Installable: Add to home screen on mobile/desktop
- Offline Support: IndexedDB storage for venues and favorites
- Service Worker: Caches static assets for fast loading
- Background Sync: Queue actions when offline
- Rate Limiting: API protection with configurable limits
- Data Caching: Multi-layer caching with TTL support
- Error Boundaries: Graceful error handling prevents crashes
- Loading Skeletons: Smooth loading states for better UX
See docs/NEXTJS_PERFORMANCE_PLAYBOOK.md for a full guide on rendering strategies, bundle optimization, image optimization, caching, and Core Web Vitals measurement.
- Event Tracking: Track searches, venue interactions, agent performance
- Agent Metrics: Monitor AI pipeline execution times
- Search Patterns: Understand user behavior and preferences
- 57 Unit Tests: Full coverage with Jest & React Testing Library
- E2E Testing: Playwright configuration for end-to-end tests
- API Tests: Route handler testing
- Component Tests: UI component validation
WorkSphere brings together geospatial data, ambient intelligence, and real-time collaboration into a unified, responsive interface:
| Capability | Experience | Technical Highlight |
|---|---|---|
| ๐บ๏ธ Interactive Geospatial Map | Dynamic CartoDB Dark Matter tiles with color-coded venue noise markers (green=quiet, amber=moderate, red=busy). | Real road routing with OSRM, Haversine proximity, custom Clerk user pins. |
| ๐ค Autonomous Multi-Agent AI | Conversational discovery agent that reasons across amenities, seating availability, and workspace preferences. | 5-agent pipeline (Orchestrator โ Context โ Data โ Reasoning โ Action) with transparent thought telemetry. |
| ๐ก Live Presence & Telemetry | Real-time seat occupancy badges (Quiet, Moderate, Busy) and collaborative workspace notes. | Sub-50ms WebSocket synchronization powered by PartyKit mesh network. |
| ๐ Battery Panic Mode | Automatically re-ranks search results when battery drops below 20%, prioritizing verified desk outlets. | Web Battery API integration with graceful degradation on non-supported viewports. |
| ๐ด Offline-First PWA | Browse cached venues, view floor plans, and queue check-ins completely offline. | Service Worker background sync + IndexedDB storage + Web Locks API synchronization. |
| ๐งพ Cryptographic PDF Invoicing | Instant one-click PDF receipts generated for verified bookings. | 100% serverless, zero-filesystem execution via pdf-lib with embedded Helvetica glyphs. |
| ๐ Zero-Knowledge Student Perks | Claim verified student discounts without revealing personal academic credentials. | Client-side WASM ZKP proof generation with offline localStorage verification caching. |
| Category | Technology |
|---|---|
| Framework | Next.js 15.5 (App Router) |
| Language | TypeScript 5.0 |
| Styling | Tailwind CSS 4.0, Custom UI Components |
| AI/LLM | Groq SDK (Llama 3.3 70B) |
| Database | Neon PostgreSQL + Prisma 7.2 ORM (with @prisma/adapter-pg) |
| Authentication | Clerk |
| Maps | React Leaflet + OpenStreetMap |
| Venue Data | OpenStreetMap (Overpass API) - FREE |
| Venue Photos | Pexels API - FREE (20k req/mo) |
| Real-time | Server-Sent Events (SSE) |
| Routing | OSRM (Open Source Routing Machine) - FREE |
| PDF Generation | pdf-lib 2.x (serverless-compatible) |
| Testing | Jest 29, React Testing Library, Playwright |
| PWA | Service Workers + IndexedDB |
| Deployment | Vercel |
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ USER INTERFACE โ
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
โ โ Map (70%) โ โ Chat (30%) โ โ
โ โ - Venue Markers โ โ - Natural Language Input โ โ
โ โ - User Location โ โ - Agent Transparency โ โ
โ โ - Route Polylines โ โ - Venue Cards โ โ
โ โ - Auto-centering โ โ - Action Buttons โ โ
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ
โผ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ MULTI-AGENT PIPELINE โ
โ โ
โ โโโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโ โ
โ โ Orchestrator โ -> โ Context โ -> โ Data โ โ
โ โ Agent โ โ Agent โ โ Agent โ โ
โ โ โ โ โ โ โ โ
โ โ Routes query โ โ Extracts โ โ Fetches โ โ
โ โ to agents โ โ intent & โ โ venues via โ โ
โ โ โ โ parameters โ โ Overpass API โ โ
โ โโโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโ โ
โ โ โ
โ โผ โ
โ โโโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโ โ
โ โ Action โ <- โ Reasoning โ โ
โ โ Agent โ โ Agent โ โ
โ โ โ โ โ โ
โ โ Updates UI, โ โ Scores & โ โ
โ โ map, chat โ โ ranks venues โ โ
โ โโโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโ โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ
โผ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ DATA LAYER โ
โ โโโโโโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโโโ โ
โ โ Neon Postgres โ โ OpenStreetMap โ โ Clerk โ โ
โ โ โ โ โ โ โ โ
โ โ - Users โ โ - Overpass API โ โ - Auth โ โ
โ โ - Venues โ โ - Cafes โ โ - User Sync โ โ
โ โ - Ratings โ โ - Libraries โ โ - Sessions โ โ
โ โ - Favorites โ โ - Coworking โ โ โ โ
โ โ - Conversations โ โ โ โ โ โ
โ โโโโโโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโโโ โ
โ โ
โ โโโโโโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโโโโ โ
โ โ Pexels API โ โ OSRM API โ โ
โ โ โ โ โ โ
โ โ - Venue Photos โ โ - Road Routing โ โ
โ โ - 20k/mo FREE โ โ - Polylines โ โ
โ โ - Server Proxy โ โ - FREE โ โ
โ โโโโโโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโโโโ โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
- Node.js 18+
- npm or yarn
- Git
- Docker and Docker Compose (Optional, but highly recommended for local Postgres & Redis)
-
Clone the repository
git clone https://github.com/SatyamPandey-07/WorkSphere.git cd WorkSphere -
Install dependencies
npm install
-
Choose your environment setup path:
This starts a local PostgreSQL instance (with the
pgvectorextension) and Redis automatically.# Start database and Redis container services docker compose up -d # Copy local environment example cp .env.example .env.local # Fill out any missing external API keys in .env.local (e.g. Clerk, Groq)
If you prefer not to use Docker:
- Setup a PostgreSQL 15+ database with the
pgvectorextension enabled. - Optionally setup an Upstash Redis database.
- Copy environment config and fill in Neon and Upstash URLs:
cp .env.example .env.local
- Setup a PostgreSQL 15+ database with the
-
Initialize Database Schema
npx prisma generate npx prisma db push
-
Run the development server
npm run dev
-
Open in browser
http://localhost:3000
npm testnpm run test:watchnpm run test:e2e
npm run test:e2e:ui # With UIFor a full guide on writing, running, and debugging Playwright tests, see docs/PLAYWRIGHT_TESTING_GUIDE.md.
- 57 Unit Tests covering:
- API Route Handlers
- React Components
- Utility Functions
- Rate Limiting
- Analytics
Create a .env.local file in the root directory by copying the template:
cp .env.example .env.localFill in the following values. Variables marked (required) must be set for the app to start; (optional) ones have local fallbacks.
# โโ Database โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
# (required) Neon PostgreSQL connection string โ get from neon.tech
DATABASE_URL="postgresql://user:password@host/database?sslmode=require"
# โโ Authentication โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
# (required) Clerk keys โ get from clerk.com > your app > API keys
NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY=pk_test_...
CLERK_SECRET_KEY=sk_test_...
NEXT_PUBLIC_CLERK_SIGN_IN_URL=/sign-in
NEXT_PUBLIC_CLERK_SIGN_UP_URL=/sign-up
# โโ AI โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
# (required) Groq API key โ free at console.groq.com
GROQ_API_KEY=gsk_...
# (optional) Gemini API key โ used for server-side venue summaries
GEMINI_API_KEY=your_gemini_key_here
# โโ Venue Photos โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
# (optional) Pexels API key โ falls back to placeholder images
PEXELS_API_KEY=your_pexels_key_here
# โโ Rate Limiting โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
# (optional) Upstash Redis โ falls back to in-memory rate limiter
UPSTASH_REDIS_REST_URL=https://your-upstash-redis-endpoint.upstash.io
UPSTASH_REDIS_REST_TOKEN=your-upstash-redis-tokenFull reference: See
docs/ENV_VARS.mdfor a complete list of every variable with detailed descriptions.
You can obtain the Upstash Redis credentials from your Upstash Redis database dashboard.
The Upstash Redis variables are optional for local development. If UPSTASH_REDIS_REST_URL and UPSTASH_REDIS_REST_TOKEN are omitted, the application falls back to an in-memory rate limiter. This allows the application to run locally without an Upstash Redis configuration, but rate-limit state is stored only in the local application memory and is not shared across multiple instances or processes.
For production or multi-instance deployments, configuring Upstash Redis is recommended to ensure consistent rate limiting across application instances.
| Service | URL | Free Tier | Required |
|---|---|---|---|
| Neon | neon.tech | 0.5GB storage | โ Yes |
| Clerk | clerk.com | 10,000 MAU | โ Yes |
| Groq | console.groq.com | Free API access | โ Yes |
| Pexels | pexels.com/api | 20,000 req/month | โ No (has fallback) |
| OSM/OSRM | N/A | Unlimited | โ No (public API) |
| Route | Page | Description |
|---|---|---|
/ |
Landing Page | Hero section with product mockup, features showcase, CTAs |
/ai |
AI Workspace Finder | Main app with 70/30 map/chat split, dark theme |
/dashboard |
User Dashboard | Personal dashboard for authenticated users |
/offline |
Offline Page | PWA fallback when network unavailable |
/sign-in |
Sign In | Clerk authentication sign-in page |
/sign-up |
Sign Up | Clerk authentication sign-up page |
| Method | Route | Description |
|---|---|---|
POST |
/api/chat |
Main chat endpoint with agent pipeline |
GET |
/api/venues |
Search venues |
POST |
/api/venues |
Add crowdsourced venue |
GET |
/api/venues/enrich |
Enrich venue with OSM + Pexels data |
POST |
/api/venues/[id]/rate |
Rate a venue |
POST |
/api/venues/updates |
Bulk update venue photos |
GET |
/api/favorites |
Get user's favorites |
POST |
/api/favorites |
Add favorite |
DELETE |
/api/favorites |
Remove favorite |
GET |
/api/conversations |
List conversations |
POST |
/api/conversations |
Create conversation |
GET |
/api/conversations/[id] |
Get conversation |
DELETE |
/api/conversations/[id] |
Delete conversation |
GET |
/api/location |
IP-based location fallback |
POST |
/api/webhook |
Clerk webhook for user sync |
User Query: "Find a quiet cafe with WiFi near me"
โ
โผ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ ORCHESTRATOR AGENT โ
โ โข Analyzes query type โ
โ โข Determines: Context โ Data โ Reasoning โ
โ โข Output: agentsToUse[], reasoning โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ
โผ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ CONTEXT AGENT โ
โ โข Extracts intent: workType = "focus" โ
โ โข Parameters: amenities = [wifi, quiet] โ
โ โข Output: structured intent object โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ
โผ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ DATA AGENT โ
โ โข Queries Overpass API for cafes โ
โ โข Filters by location radius โ
โ โข Output: venues[], conditions, meta โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ
โผ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ REASONING AGENT โ
โ โข Scores: WiFi(30%), Noise(25%), โ
โ Outlets(20%), Rating(15%), Distance(10%) โ
โ โข Ranks top venues with explanations โ
โ โข Output: rankedVenues[], reasoning โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ
โผ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ ACTION AGENT โ
โ โข Updates map markers โ
โ โข Sets map view/zoom โ
โ โข Generates chat response โ
โ โข Output: UI updates, message โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
The UI shows each agent's contribution:
๐ง Agent Pipeline (5 steps)
โโ ๐ฏ Orchestrator: Routing to Context, Data, Reasoning agents
โโ ๐ Context: Extracted intent - focus work, needs WiFi
โโ ๐ Data: Found 12 cafes within 2km radius
โโ ๐ก Reasoning: Top pick - Blue Bottle Coffee (score: 8.5/10)
โโ โก Action: Updated map with 5 markers
The venue summary endpoint sends its prompt to Gemini rather than the chat models. See docs/GEMINI_INTEGRATION.md for the client contract, model choice, error handling, and test setup.
The repository is a Next.js monorepo. Below is the top-level layout followed by a plain-English description of every major directory.
worksphere/
โโโ prisma/ # Database schema, migrations, and seed script
โโโ party/ # PartyKit real-time collaboration server
โโโ docs/ # Extended developer guides and reference docs
โโโ e2e/ # Playwright end-to-end tests
โโโ public/ # Static assets: PWA manifest, service worker, icons
โโโ scripts/ # Build and utility scripts
โโโ src/
โ โโโ __tests__/ # Jest unit and integration tests
โ โ โโโ api/ # API route tests
โ โ โโโ components/ # Component tests
โ โ โโโ lib/ # Utility tests
โ โโโ app/ # Next.js App Router pages, layouts, and API routes
โ โ โโโ api/ # API route handlers
โ โ โ โโโ chat/ # Multi-agent pipeline endpoint
โ โ โ โโโ venues/ # Venue CRUD + OSM/Pexels enrichment
โ โ โ โโโ favorites/ # User favorites
โ โ โ โโโ conversations/ # Chat history
โ โ โโโ ai/ # Main workspace-finder page
โ โ โโโ dashboard/ # User profile and booking dashboard
โ โ โโโ sign-in/ # Clerk authentication pages
โ โ โโโ sign-up/
โ โ โโโ offline/ # PWA offline fallback
โ โ โโโ layout.tsx # Root layout and global providers
โ โโโ components/ # Reusable React UI components
โ โ โโโ ai-elements/ # Agent-transparency and AI-specific UI pieces
โ โ โโโ ui/ # General design-system components
โ โโโ context/ # React context providers for global client state
โ โโโ core/ # Core business logic and domain services
โ โโโ hooks/ # Custom React hooks (PWA, real-time, speech)
โ โโโ lib/ # Shared utilities, database client, rate limiting, analytics
โ โโโ locales/ # Internationalisation (i18n) string files
โ โโโ shaders/ # WebGL/GLSL shader source files
โ โโโ types/ # Shared TypeScript type definitions
โ โโโ utils/ # General-purpose helper functions
โ โโโ wasm/ # WebAssembly modules used in the browser
โ โโโ worker/ # Service worker and background-sync logic
โ โโโ workers/ # Additional web worker scripts
โโโ jest.config.js # Jest configuration
โโโ playwright.config.ts # Playwright configuration
โโโ package.json
| Directory | What it contains |
|---|---|
prisma/ |
schema.prisma (data model), auto-generated migrations, and a seed script for local development |
party/ |
PartyKit server (server.ts, multiRegionServer.ts) that powers real-time collaborative features via WebSockets |
docs/ |
Hundreds of developer-facing guides covering architecture, testing, deployment, security, and more |
e2e/ |
Playwright end-to-end test suites for full browser flows |
public/ |
Static files served directly: service worker (sw.js), PWA manifest, and app icons |
scripts/ |
One-off and CI utility scripts (database seeding, asset generation, etc.) |
src/app/ |
Next.js 15 App Router โ every page, layout, and API route handler lives here |
src/components/ |
Reusable React components: map, chatbot, venue cards, rating dialog, error boundary, and design-system primitives |
src/context/ |
React context providers that share global state (currency, events, etc.) across the component tree |
src/core/ |
Framework-agnostic business logic and domain services, kept separate from Next.js specifics |
src/hooks/ |
Custom React hooks: usePWA, useRealTime (SSE), and useSpeechRecognition |
src/lib/ |
Shared back-end helpers: Prisma client, Zod validation schemas, rate limiter, analytics, OSM/Pexels integration, and OSRM routing |
src/locales/ |
Translation JSON files used by the i18n layer |
src/shaders/ |
GLSL/WebGL shader programs for any GPU-accelerated rendering |
src/types/ |
Project-wide TypeScript interfaces and enums |
src/utils/ |
Lightweight, stateless helper functions shared across the codebase |
src/wasm/ |
Compiled WebAssembly modules (e.g. FFT, noise filtering, SQLite FTS) |
src/worker/ |
Service worker source and offline/background-sync logic |
src/workers/ |
Additional dedicated web worker scripts (heavy computation off the main thread) |
src/__tests__/ |
Unit and integration tests mirroring the src/ directory layout |
- Open the app at
http://localhost:3000 - Allow location access when prompted
- Start chatting with the AI assistant!
Try these natural language queries:
- "Find a quiet cafe with good WiFi near me"
- "Show me coworking spaces within 2km"
- "I need a library to study"
- Open the app in Chrome or Edge
- Click the microphone icon in the chat input bar
- Allow microphone permission when prompted
- Speak your query โ it will populate the text input automatically
- Click Send or press Enter to submit
Testing the unsupported-browser warning (Firefox Nightly / DevTools simulation):
- Open Chrome DevTools (
F12) โ Console tab - Paste:
delete window.SpeechRecognition; delete window.webkitSpeechRecognition; - Reload the page
- The mic button will appear dimmed/greyed out
- Click it โ an amber warning banner appears explaining the limitation
- Sign in with Clerk
- Click heart icon on venue cards to favorite
- Click "Rate" to submit ratings
- Desktop: Click install icon in browser
- Mobile: "Add to Home Screen"
- Push to GitHub
- Connect repository to Vercel
- Add environment variables
- Deploy!
| Priority | Feature | Description |
|---|---|---|
| ๐ด High | Analytics Dashboard | Admin page to view search patterns, popular venues, user metrics |
| ๐ก Medium | Mobile App | React Native version sharing the same API backend |
| ๐ก Medium | AI Memory | Cross-conversation learning for personalized recommendations |
| ๐ก Medium | Social Features | Share favorite workspaces, follow other remote workers |
| ๐ข Low | Booking Integration | Reserve desks at coworking spaces via API |
| ๐ข Low | Noise Level API | Real-time noise monitoring hardware integration |
Contributions are warmly welcomed! We aim to make contributing as smooth and rewarding as possible.
- Find an Issue: Explore our Open Issues.
- Claim with
/claim: Drop a comment containing/claimon any unassigned issue. The automation will assign it to you instantly!- You can hold up to 10 active assigned issues at once.
- Recommended completion window is 6 days.
- Release with
/unclaim: If you need to step away from an issue, simply comment/unclaimto release it for other contributors. - Auto-Merge on PR: Include
Closes #<issue_number>in your PR description. When opened, CI checks the issue link and automatically squash-merges your PR with co-author credit!
Please refer to our Contributing Guide and Code of Conduct.
This project is licensed under the MIT License.
Satyam Pandey
- GitHub: @SatyamPandey-07
โญ Star this repo if you find it helpful!
Made with โค๏ธ by Satyam Pandey

