Skip to content

QBee is an innovative system that transforms how users interact with databases, regardless of their technical skill level. By replacing traditional query methods with a user-friendly form interface, as well as natural language querying, QBee makes database querying effortless.

License

Notifications You must be signed in to change notification settings

COS301-SE-2024/Query-Builder

Repository files navigation

Ctrl+Alt+Elites

QBEE Logo

Project: QBee

A Capstone Project for DNS Africa

GitHub issues GitHub pull requests GitHub Languages GitHub Last Commit GitHub RepoSize codecov

Project Introduction

QBee is an innovative solution that transforms how users interact with databases, regardless of their technical skill level. By replacing traditional query methods with a user-friendly form interface, as well as natural language querying, QBee makes database querying effortless. It ensures robust data privacy and integrity, providing a secure environment for users.

Beyond basic query building, QBee offers tools to visualize data through generated graphs, facilitating deeper insights and enhancing user experience and efficiency.

QBee is the ultimate tool for modern database management and analysis.

Our Official Website

Documentation

Our Documentation Website

Resource Link
Project Board Project Tracking
User Manual/Help Centre Help for QBee Users
Technical Installation Manual A guide to running the system yourself
Coding Standards See Coding Standards
Software Requirements Specification See our complete SRS
Architectural Requirements Document See our architecture document
Testing Policy Document See our testing policy document

Demos

Demo 1

Presentation

Video

Demo 2

Video

Demo 3

Video

Team Members

Zane Augustyn - u22528424

Zane is a final-year BSc Computer Science student. He enjoys learning about different ways to do certain things and takes various courses to broaden his scope in the programming world. This includes Microsoft certifications in Azure, Python, JavaScript, and HTML & CSS, as well as a newly acquired DNS introductory course by ZADNA and ZARC. He has also developed a few mobile applications using Flutter and React, enjoying improving the overall efficiency in which the user interacts with the backend.

Email: u22528424@tuks.co.za






Graeme Blain - u22625462

Graeme is a third-year BSc Computer Science student at the University of Pretoria. He possesses strong analytical and problem-solving skills, allowing him to dissect challenges and craft effective solutions. He is eager to learn in the process of bringing the QBee to life. Graeme has an interest particularly in backend development and logical solution crafting and optimisation. Additionally he has worked a lot with various database schemas and SQL dialects.

Email: u22625462@tuks.co.za






Keanu Canto - u20693398

Keanu is a final year student who is pursuing a BSc Computer Science with a focus on data science. He particularly enjoys artificial intelligence and has experience in frontend-backend integration. He has developed a number of personal projects for both desktop and mobile that have been used by users in over 130 countries worldwide, and he believes that his specialisation in data science will be very useful in taking a data-intensive application such as QBee to the next level.

Email: u20693398@tuks.co.za






Aidan Chapman - u22738917

Aidan is a third year BSc Computer Science student. He has experience with devops and CI/CD, having managed this in his COS301 mini-project. He also has a passion for robotics, having designed and built his own 3D printer. He prefers working on the backend where he tackles problems related to the logic of the system. He is a hardworking, critical thinking, time-conscious individual that is persistent in his pursuit of success and is always ready to learn.

Email: u22738917@tuks.co.za






Xadrian van Heerden - u22699572

I am currently in my final year of BSc Computer Science. My passions range from figuring out new and interesting concepts in the world of tech to baking pastries and cakes in my free time; so I definitely know how to manage my time. Most importantly, I like to challenge myself. Most vacations, I work for BBD Software on vacation projects. I particularly enjoy designing front-ends and using better technologies and innovations to have a better user and developer experience, like implementing Module Federation for front-end designs. I also enjoy Data Analytics and curious to understand how it will influence data predictions and projections, for Machine Learning purposes.

Email: xadrian.vanheerden@tuks.co.za





Running the App

The application is available at our website, however, if you want to host it youself, there are two ways.

Note: In both cases, a .env file is needed for the backend and a .env.production is necessary on the frontend when running with Docker, or a .env.local file is needed when running from source. A Supabase project is also necessary. If you have any queries, contact us at ctrlaltelitesdevs@gmail.com

Initially, run the following command to clone the repository:

git clone https://github.com/COS301-SE-2024/Query-Builder.git

Running with Docker

This is the recommended way to run the application.

From the base directory, run the following:

docker compose up --detach

The Next.js application can then be accessed at [localhost:3000] and the NestJS backend can be accessed at [localhost:3001].

Running from source

Note: You will have to host a redis server, this can be done by running sudo apt install redis-server, assuming you are using a debian based system. To run the server, run redis-server.

Install dependencies

cd query-builder-app
pnpm i
cd ../query-builder-backend
pnpm i

Run the app locally (run the following command within the query-builder-app directory)

  1. Build the app - this only has to be done once.
pnpm build
  1. Start the app - this can be rerun multiple times
pnpm start

Run the backend locally (run the following command within the query-builder-backend directory)

  1. Build the backend - this only has to be done once.
pnpm build
  1. Start the backend - this can be rerun multiple times
pnpm start

Note: This is necessary for the frontend to work and should be done in a separate terminal to the frontend

The Next.js application can then be accessed at [localhost:3000] and the NestJS backend can be accessed at [localhost:55555].

Tree Structure

.
├── query-builder-app # Frontend (Next.js)
│   ├── public # Resources used in the frontend that require no build step
│   └── src # Frontend logic
├── query-builder-backend # Backend (NestJS)
│   ├── src # Backend Logic
│   └── test
├── query-builder-docs # Docusaurus Documentation
│   ├── docs # .md files and config files to determine layout for Docusaurus docs
│   ├── src
│   └──static # Resources used in the docs that require no build step
├── query-builder-e2e # Folder Reserved to End to End testing
└── supabase # Database
    ├── functions # Edge Function Directory
    └── migrations # Database backup files

About

QBee is an innovative system that transforms how users interact with databases, regardless of their technical skill level. By replacing traditional query methods with a user-friendly form interface, as well as natural language querying, QBee makes database querying effortless.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published