Transform meetings, discussions, and organizational knowledge into a searchable and structured repository using AI.
MeetOnMemory is a full-stack AI-powered platform built to address the challenge of meeting management, policy tracking, and institutional knowledge retention.
Organizations often lose valuable information because meeting notes, decisions, policies, and discussions are scattered across emails, documents, and chats. MeetOnMemory centralizes this information and makes it searchable through AI-powered semantic search and automated meeting summaries.
Develop a centralized system to manage meetings, events, and policy records while improving:
- Knowledge retention
- Accountability
- Documentation
- Information retrieval
- Organizational transparency
MeetOnMemory provides a single platform where organizations can store, manage, search, and analyze meeting-related information.
- Create meetings
- Manage meeting details and agenda
- Track meeting history
- Organize discussions in one place
- Generate Minutes of Meeting (MoM)
- Extract key discussion points
- Capture decisions
- Generate structured summaries using Google Gemini
Search organizational knowledge using natural language queries.
Examples:
What was decided about the education policy?
Show discussions related to AI implementation.
Find previous meetings discussing recruitment.
Powered by:
- Pinecone Vector Database
- Embeddings
- AI-based similarity search
- Upload policy documents
- Maintain policy versions
- Store organizational records
- Centralized policy management
- Meeting statistics
- Policy activity tracking
- Organization insights
- Visual dashboards
- Clerk identity provider (sole login/session provider)
- MongoDB-backed organizations, memberships, roles, and RBAC
- Protected routes and permission middleware
- Secondary JWTs for shared links, Slack OAuth state, and data exports (not user login)
- Socket.IO integration
- Real-time updates
- Live meeting interactions
- Create organizations
- Join organizations
- Role-based access management
Frontend (React + Vite)
β
βΌ
Backend (Node.js + Express)
β
βΌ
MongoDB Database
β
ββββββββββββ΄βββββββββββ
βΌ βΌ
Google Gemini Pinecone
AI Summaries Semantic Search
- React.js
- Vite
- Tailwind CSS
- React Router DOM
- Axios
- Recharts
- Chart.js
- Lucide React
- React Toastify
- React Speech Recognition
- Socket.IO Client
- Node.js
- Express.js
- Socket.IO
- Clerk (
@clerk/express) for identity - MongoDB RBAC for authorization
- Multer
- Nodemailer
- Cookie Parser
- CORS
- MongoDB
- Mongoose
- Google Gemini API
- Pinecone
- Hugging Face Inference API
- ChromaDB
- Xenova Transformers
- ONNX Runtime
- OpenAI SDK (Optional)
- Google APIs
- Microsoft Graph API
- Calendar Utilities
- Email Services
MeetOnMemory
β
βββ client
β βββ public
β βββ src
β β βββ assets
β β βββ components
β β βββ context
β β βββ pages
β βββ package.json
β
βββ server
β βββ config
β βββ controllers
β βββ middleware
β βββ models
β βββ routes
β βββ services
β βββ socket
β βββ uploads
β βββ utils
β βββ server.js
β
βββ package.json
βββ README.md
git clone https://github.com/imuniqueshiv/MeetOnMemory.git
cd MeetOnMemoryThe easiest way to run the entire stack (Database, Redis, Backend, Frontend) locally is using Docker.
- Make sure you have Docker and Docker Compose installed.
- Create
.envfiles for both the client and server (see Environment Variables section). - Run the following command from the root directory:
docker-compose up -d --buildThis will spin up all the necessary services.
- The frontend will be available at
http://localhost:5173 - The backend will be available at
http://localhost:4000
cd server
npm installCreate .env
PORT=4000
MONGODB_URI=your_mongodb_uri
# Clerk β sole identity provider (required)
AUTH_PROVIDER=clerk
CLERK_SECRET_KEY=sk_test_your_clerk_secret
# Secondary token signing ONLY (shared links, Slack OAuth state, data exports).
# Not used for user login sessions.
JWT_SECRET=your_secondary_jwt_secret
NODE_ENV=development
CLIENT_URL=http://localhost:5173
SMTP_USER=your_email
SMTP_PASS=your_password
SENDER_EMAIL=your_email
ASSEMBLYAI_API_KEY=your_key
OPENAI_API_KEY=optional
HUGGINGFACE_API_KEY=your_key
GEMINI_API_KEY=your_key
GEMINI_MODEL=gemini-2.0-flash
PINECONE_API_KEY=your_key
PINECONE_ENVIRONMENT=your_environment
INDEX_NAME=your_index_name
TRANSFORMERS_BACKEND=onnxruntime-web
# Calendar Integrations
GOOGLE_CLIENT_ID=your_google_client_id
GOOGLE_CLIENT_SECRET=your_google_client_secret
GOOGLE_REDIRECT_URI=http://localhost:4000/api/calendar/google/callback
MS_CLIENT_ID=your_microsoft_client_id
MS_CLIENT_SECRET=your_microsoft_client_secret
MS_TENANT_ID=common
MS_REDIRECT_URI=http://localhost:4000/api/calendar/outlook/callback
TOKEN_ENCRYPTION_KEY=32_byte_string_for_encryptionStart Backend:
npm run serverThe frontend features automatic backend resolution and works out-of-the-box without manual environment configuration:
cd client
npm installCreate client/.env (required for Clerk):
VITE_CLERK_PUBLISHABLE_KEY=pk_test_your_clerk_publishable_key
# Local development (required protocol: http β not https)
VITE_BACKEND_URL=http://localhost:4000
# Production
# VITE_BACKEND_URL=https://meetonmemory.onrender.comnpm run devNote:
VITE_CLERK_PUBLISHABLE_KEYis required. Without it, sign-in/sign-up are unavailable. IfVITE_BACKEND_URLis unset, the frontend falls back tohttp://localhost:4000.
| Variable | Purpose |
|---|---|
| PORT | Server Port |
| MONGODB_URI | MongoDB Connection |
| AUTH_PROVIDER | Must be clerk (sole identity provider) |
| CLERK_SECRET_KEY | Clerk secret key for session verification |
| JWT_SECRET | Secondary token signing (shared links / Slack state / exports) |
| CLIENT_URL | Frontend origin for OAuth redirects |
| GEMINI_API_KEY | Google Gemini |
| GEMINI_MODEL | Gemini Model |
| PINECONE_API_KEY | Pinecone Access |
| PINECONE_ENVIRONMENT | Pinecone Environment |
| INDEX_NAME | Pinecone Index |
| HUGGINGFACE_API_KEY | Embeddings |
| ASSEMBLYAI_API_KEY | Speech Processing |
| SMTP_USER | Email Service |
| SMTP_PASS | Email Service |
| SENDER_EMAIL | Sender Email |
| Variable | Purpose |
|---|---|
| VITE_CLERK_PUBLISHABLE_KEY | Clerk publishable key (required for sign-in) |
| VITE_BACKEND_URL | Backend API URL (optional; defaults to :4000) |
- Live Meeting Recording
- Real-Time Speech Transcription
- Voice Search
- Google Calendar Integration
- Outlook Integration
- AI Meeting Assistant
- Slack Integration
- Multi-Language Support
- Mobile Application
Store and retrieve meeting knowledge efficiently.
Manage meetings, events, and policy records.
Maintain searchable archives of discussions and decisions.
Track decisions, action items, and organizational growth.
Thanks to all the amazing contributors who have helped improve MeetOnMemory!
|
π 89 Merged PRs β 196 Commits |
π 50 Merged PRs β 56 Commits |
π 41 Merged PRs β 118 Commits |
π 41 Merged PRs β 59 Commits |
π 40 Merged PRs β 52 Commits |
This project is licensed under the MIT License.
If you find MeetOnMemory useful, please consider:
β Star this repository
π΄ Fork the project
π Report bugs
π‘ Suggest new features
π€ Contribute to the project
Built with passion, powered by AI, shipped with precision.
β If MeetOnMemory helps you, consider giving this repository a star! β
Proud participant of Elite Coders Summer of Code (ECSoC) 2026.
Made with β€οΈ by the MeetOnMemory Community


