Getting Started for Developers
This guide will help you set up your development environment and start contributing to the Quran Knowledge Graph project.Prerequisites
Before you begin, make sure you have the following installed:- Python 3.9+ - For backend development
- Node.js 16+ - For frontend development
- Docker - For containerized development
- Git - For version control
Setting Up Your Development Environment
1. Clone the Repository
2. Backend Setup
Create a Python Virtual Environment
Install Dependencies
Set Up Environment Variables
Create a.env file in the root directory:
Run the Backend Server
http://localhost:8000.
3. Frontend Setup
Install Dependencies
Set Up Environment Variables
Create a.env.local file in the frontend directory:
Run the Frontend Development Server
http://localhost:3000.
4. Docker Setup (Alternative)
If you prefer to use Docker for development:- The backend API at
http://localhost:8000 - The frontend at
http://localhost:3000 - The Kuzu database at
localhost:5432
Project Structure
Development Workflow
1. Create a Feature Branch
2. Make Your Changes
Implement your changes, following the project’s coding standards.3. Run Tests
4. Submit a Pull Request
- Push your changes to your fork
- Create a pull request against the main repository
- Fill out the pull request template with details about your changes
- Wait for code review and address any feedback
Working with the Graph Database
Connecting to Kuzu
Example Queries
Here are some example queries to help you get started:Get a Verse by Reference
Find Verses by Topic
Find Words with the Same Root
Working with Vector Embeddings
Generating Embeddings
Vector Search in Cypher
API Documentation
The API documentation is available athttp://localhost:8000/docs when running the development server.
For more detailed API documentation, see the API Reference.
Getting Help
If you need help or have questions:- Check the Technical Documentation
- Join our Discord community
- Open an issue on GitHub
Next Steps
- Learn about the System Architecture
- Explore the Graph Database Implementation
- Read the Contributing Guidelines