An innovative world-building application that enables users to create, explore, and navigate interconnected worlds through a graph database backend, powered by natural language AI agents.
Obsidian 2.0.0 is a sophisticated world-building platform that combines the power of graph databases with AI-driven natural language processing. Users can create rich, interconnected worlds with characters, places, events, and relationships, then query and explore their creations using simple natural language commands.
- Natural Language Interface: Create your world in a graph database by writing a series of documents. Our agents use these to create your world in the form of nodes and relationships
- Dynamic Graph View: Visual representation of world data using Cytoscape.js
- Accessible Alternative: Text-based view for improved accessibility
- Component-Based Architecture: Built with reusable Svelte components
- Resizable Panels: Customizable layout with draggable panel separators
- Tab Management: Multi-tab interface for efficient content browsing
- Framework: SvelteKit 5
- Language: TypeScript with Svelte
- Styling: Tailwind CSS 4 + DaisyUI 5
- UI Components: Custom component library with accessibility focus
- Graph Database: Neo4j for interconnected data storage
- AI Framework: LangChain with OpenAI GPT-4 integration
- Authentication: Supabase Auth integration
- Vector Database: Planned for semantic search capabilities (still to come)
- Build Tool: Vite
- Testing: Vitest (unit) + Playwright (E2E)
- Code Quality: ESLint + Prettier
- Package Management: npm with semantic versioning
Central hub managing the three main interface areas:
- World View: Graph visualization and accessible text view
- Query Panel: Natural language input interface
- Info Panel: Content display and editing interface
Robust Neo4j connection handling with:
- Connection pooling and session management
- Error handling and recovery
- Query optimization for world-scoped data
- Node.js 18+
- Neo4j database instance
- OpenAI API key
- Supabase project (for authentication)
- Clone the repository:
git clone https://github.com/fac-31/Pro0623-ObsidianTwoPointOPointO.git
cd Pro0623-ObsidianTwoPointOPointO
- Install dependencies:
npm install
- Set up environment variables:
# Create .env file with:
PUBLIC_NEO4J_URL=your_neo4j_url
PUBLIC_NEO4J_USERNAME=your_username
PUBLIC_NEO4J_PASSWORD=your_password
OPENAI_API_KEY=your_openai_key
- Start the development server:
npm run dev
# macOS/Linux
python3 -m venv venv
# Windows
python -m venv venv
# macOS/Linux
source venv/bin/activate
# Windows (Git Bash or similar)
source venv/Scripts/activate
pip install -r src/python/requirements.txt
# macOS/Linux
python3 src/python/server.py
# Windows
python src/python/server.py
deactivate
npm run dev
- Start development servernpm run build
- Build for productionnpm run preview
- Preview production buildnpm test
- Run unit testsnpm run test:e2e
- Run end-to-end testsnpm run lint
- Check code qualitynpm run format
- Format code
- Authenticate with your account
- Navigate to the worlds page
- Click "Create New World"
Component and utility function tests using Vitest:
npm test
User workflow testing with Playwright:
npm run test:e2e
Built-in accessibility validation:
npm run test:a11y
- Relationship Agent - Process and structure user-created content
- Router Agent - Coordinate between semantic and relationship query agents
- Semantic Query Agent - Vector database integration for semantic search
- Vector database integration for enhanced semantic search
- Advanced privacy and sharing controls
- Collaborative world building
- Export capabilities for various formats
- Mobile application
- Fork the repository
- Create a feature branch
- Make your changes with tests
- Run quality checks:
npm run lint && npm run check
- Submit a pull request
We use Commitizen to help create consistent commit messages required for automated versioning.
Instead of git commit
, run:
npm run commit
- Built with love by the FAC-31 cohort
- Powered by the amazing Svelte and Neo4j communities
- AI capabilities enabled by OpenAI and LangChain
Obsidian 2.0.0 - Where imagination meets intelligent technology β¨