Full Stack Developer Assignment: Self-Learning Knowledge Graph Tool
This assignment tests a full stack developer's ability to design and implement a dynamic,
self-learning documentation tool using the Google Gemini API.
---
Objective
Build a web application that allows users to:
1. Create Concept Nodes (topics).
2. Ask Questions that form Edges between nodes.
3. Use Google Gemini API to generate answers - each answer becomes a Node.
4. Select text from an answer to create Subnodes, forming an expanding Knowledge Graph.
5. Visualize, search, edit, and export the graph.
---
Core Functional Requirements
- User authentication and graph isolation.
- Create, edit, and version concept nodes.
- Ask questions and fetch Gemini answers as linked nodes.
- Select answer text to create subnodes.
- Interactive graph visualization and navigation.
- Search, tag, export/import (JSON/Markdown).
- Integration with Google Gemini API for responses.
- Unit, integration, and E2E testing with CI setup.
---
Recommended Tech Stack
- Frontend: React + TypeScript + [Link] / [Link]
- Backend: [Link] (Express/Nest) or Python (FastAPI/Django)
- Database: PostgreSQL or Neo4j
- Auth: JWT / Session-based
- Deployment: Docker + CI/CD + Cloud deploy (Heroku, GCP, Vercel)
---
Evaluation Rubric (100 points)
- Functionality: 50 pts
- Code Quality & Testing: 20 pts
- UX & Documentation: 15 pts
- Deployment & Security: 10 pts
- Bonus Features: 5 pts
---
Deliverables
1. Public Git repo + documentation (README, setup guide, design doc)
2. CI-tested codebase with clear architecture
3. Demo video (5-10 min)
4. Sample dataset (seed graph)
5. Optional deployed demo link
---
Example Workflows
- Create a concept node "Quantum Computing".
- Ask "What are qubits?" -> Gemini returns answer -> new node.
- Select phrase "Superposition" -> Create subnode -> Ask new question.
- Visualize network of questions, answers, and subnodes dynamically.
---
Goal
To evaluate the developer's full-stack capabilities in:
- API integration (LLM)
- Data modeling (graph-based)
- Frontend interactivity (visual graph editing)
- Secure deployment & documentation