janbabak / NoQL

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

NoQL - No Query Language

Java Spring Gradle Postgres

✏️ Description

NoSQL is a tool that lets users query databases using natural language. It's designed for those who aren't developers and don't know query language syntax like SQL.

🧑‍🔬 Technologies

✅ Software requirements

  • Java 17
  • Docker, Docker compose

🎬 How to run

Clone repository

git clone https://github.com/janbabak/NoQL.git
cd NoQL/

Backend

Local stack

  • Local stack is used for frontend development. It uses a local database and a local backend running like docker-compose services.
  • Details are in the Local stack.

Development stack

  • Development stack is used for backend development and frontend development. It uses a local database and other dependencies running like docker-compose services and backend running on the host machine.

  • It is necessary to create a NoQL/backend/.env.local file with the following content:

      API_KEY="xxx" # change
      LLAMA_AUTH_TOKEN="xxx" # change
      AI_STUDIO_API_KEY="xxx" # change
    
      NOQL_DB_NAME="database"
      NOQL_DB_HOST="localhost"
      NOQL_DB_PORT="5432"
      NOQL_DB_USERNAME="user"
      NOQL_DB_PASSWORD="password"
    
      # Local databases - should match the NOQL_DB_xxx credentials
      POSTGRES_PASSWORD="password"
      POSTGRES_USER="user"
      POSTGRES_DB="database"
    
      # settings
      PAGINATION_MAX_PAGE_SIZE=100
      PAGINATION_DEFAULT_PAGE_SIZE=20
    
      TRANSLATION_RETRIES=3
  • Start Dev stack.

  • Set the development environment. The app will connect to the local database.

    export spring_profiles_active=local # TODO: create local profile
  • Start the backend app:

  • Run the backend

    cd backend
    ./gradlew bootRun

Frontend

  • Install the frontend dependencies
    cd frontend/NoQL 
    npm install
  • Start the frontend
    npm run dev

AWS

  • Connect to the AWS EC2 instance over SSH
    ssh ec2-user@3.68.195.75
  • Install java
    sudo yum update
    sudo yum install java-17-amazon-corretto-headless.x86_64
  • Copy the jar
    scp build/libs/backend-0.0.1-SNAPSHOT.jar ec2-user@3.68.195.75:/home/ec2-user
  • Run the jar
    java -jar backend-0.0.1-SNAPSHOT.jar # the app ends when the session ends
    java -jar backend-0.0.1-SNAPSHOT.jar > noql.log 2>&1 & # detached with logging

About


Languages

Language:Java 76.3%Language:TypeScript 22.0%Language:CSS 0.9%Language:Shell 0.4%Language:Dockerfile 0.2%Language:JavaScript 0.2%Language:HTML 0.1%