Nova 2.0 is a production-oriented, agentic personal AI assistant designed to manage real-world tasks like calendar scheduling and information retrieval using natural language.
This project is not a demo chatbot — it showcases backend engineering + AI agent design, focusing on tool orchestration, memory, and reliability, similar to how real AI products are built.
Nova 2.0 represents a clean architectural iteration over the initial version, fixing known limitations and tightening scope to reliability over hype.
Build a reliable, understandable AI agent system that:
- Uses tools safely and deterministically
- Maintains conversation state correctly
- Integrates with real external APIs
- Avoids over-engineering and unnecessary features
This project was built as a career-focused showcase, not a SaaS product.
-
Personal Calendar Management
- Check your schedule:
Do I have any meeting tomorrow? - Create meetings with attendees, date, time, and timezone.
- Automatic contact resolution from
contact.json.
- Check your schedule:
-
Web Search
- Real-time information retrieval using integrated search.
- Summarizes top results for quick answers.
-
Intelligent Conversations
- Understands multi-turn queries.
- Handles clarification requests for missing info (e.g., attendee emails).
-
Agent Memory
- Maintains conversation context using threads.
- Prevents repeated tool calls and keeps interactions concise.
-
Modern UI
- Clean chat interface with responsive design.
- Supports multi-line input and smooth scrolling.
- Cool dark mode aesthetic.
- Backend: Node.js, Express, Google Calendar API, LangChain, OpenAI
- Frontend: React, TailwindCSS, Framer Motion
- AI Tools: LangGraph, LangChain tools (createEvent, getEvents, webSearch)
Nova was built in iterations, mirroring real production development.
- No authentication layer
- Google Calendar worked for only one user
- OAuth tokens loaded from .env
- No user or session isolation
- Calendar tools could break if another user accessed the system
These limitations were known and accepted for the initial learning phase.
- Authentication & Multi-User Support
- Safer and controlled tool execution using LangGraph
- Deterministic agent flow with explicit states
- Improved memory isolation per conversation thread and per user
- Better handling of missing or partial user input
- Node.js >= 18
- Google Cloud project with Calendar API enabled
- OpenAI API Key
git clone https://github.com/MohitCode17/Nova-2.0-Personal-Assistant.git
cd /server
npm install
cd /client
npm installCreate a .env file with the following:
PORT=3001
GOOGLE_CLIENT_ID=your_google_client_id
GOOGLE_CLIENT_SECRET=your_google_client_secret
GOOGLE_REDIRECT_URL=http://localhost:3001/callback
GOOGLE_ACCESS_TOKEN=your_google_access_token
GOOGLE_REFRESH_TOKEN=your_google_refresh_token
OPENAI_API_KEY=your_openai_api_keynpm run devcd client
npm install
npm run devserver/ # Backend Node.js server
client/ # React frontend
tools.js # Custom LangChain tools for Nova
agent/ # Agent logic and LangGraph state
memory.js # Persistent conversation memoryContributions are welcome! Please follow these steps:
- Fork the repository
- Create a branch (git checkout -b feature/YourFeature)
- Commit your changes (git commit -m 'Add some feature')
- Push to the branch (git push origin feature/YourFeature)
- Open a Pull Request
Mohit Gupta – Creator of Nova AI Assistant