IdeaLog is an application designed to capture, track, and organize research ideas, experiments, and projects. It provides users with a platform to build relationships between various objects such as ideas, papers, experiments, and sketches. The goal is to create a comprehensive knowledge graph of interconnected ideas and resources.
Check out the backend documentation here.
Explore the deployed frontend here.
Note: The deployed version doesn't have ML capabilities enabled right now. To try them out, you'll need to download the repo and run it locally. See the development notes for more details.
- ⚡ FastAPI for the Python backend API.
- 🧰 SQLModel for the Python SQL database interactions (ORM).
- 🔍 Pydantic, used by FastAPI, for the data validation and settings management.
- 💾 PostgreSQL as the SQL database.
- 🛜 Neo4j as the graph database.
- 🚀 React for the frontend.
- 💃 Built using Next.js framework.
- 🦇 Dark mode support.
- 🐋 Docker Compose for development and production.
- 🔒 Secure password hashing.
- 🔑 JWT (JSON Web Token) authentication.
- 📫 Email based password recovery.
- ✅ Tests with Pytest and Vitest.
- 🚢 Deployment instructions using Docker Compose proxy to handle automatic HTTPS certificates.
- 🏭 CI (continuous integration) and CD (continuous deployment) based on GitHub Actions.
System Architecture Diagram: Integrating Next.js frontend with FastAPI backend, utilizing SQL and Neo4j databases, RabbitMQ for messaging, Celery for task queue management, and OpenAI for advanced language processing.
User -->|OWNS| Idea
User -->|FOLLOWS| User
Idea -->|LINKED_TO| Idea
Idea -->|LINKED_TO| Knowledge Source
Knowledge Source -->|LINKED_TO| Knowledge Source
Idea -->|DERIVED_FROM| Entity
Knowledge Source -->|DERIVED_FROM| Entity
Entity -->|RELATED| Entity
Download Docker Desktop for Windows. Docker Compose will be automatically installed.
Run in this directory to build and run the app:
docker compose up
Ensure to rename the example .env files and update the placeholder values with your specific configuration settings. Additionally, obtaining a free Neo4j Aura instance is crucial for the full functionality and proper experience of this project.
pip install pytest
pytest
npm run test
General development docs: development.md.
This includes using Docker Compose, custom local domains, .env configurations, etc.
Check the file release-notes.md.
The IdeaLog API Project is licensed under the terms of the MIT license.
