QuantumLab

module
v0.1.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Nov 15, 2023 License: MIT

README

QuantumLab

Table of Contents

  1. About This Project
  2. Built With
  3. Project Structure
  4. Getting Started with Backend
  5. System Users
  6. Frontend Development
  7. Developer's Guide
  8. License

About This Project

QuantumLab is an open-source quantum computing platform aiming to enhance researchers' experience by gathering the access to quantum computing resources from multiple providers. In addition, QuantumLab provides customisable analysis and visualisation tool based on Apache-Superset for quantum circuit execution results.

Built With

React TypeScript Ant-Design Go Postgres Docker Kubernetes

Project Structure

QuantumLab
├─ api                  # Backend API endpoints
├─ bootstrap            # Env bootstrap
├─ cluster              # Kubernetes cluster
├─ cmd                  # Backend entrypoint
├─ docs                 # Documents
├─ internal             # Backend internal utils
├─ model                # Backend data model
├─ repository           # Backend data repository
├─ usecase              # Backend usscase (Business logic)
├─ website              # Frontend code
├─ DOCKERFILE           # Dockerfile for building docker image
├─ go.mod
├─ go.sum
├─ LICENSE
├─ README.md

Getting Started with Backend

Prerequisite

Make sure you properly installed Go 1.20 on your OS. Refer to the Go official documentation for more details.

Install dependencies

Note: Make sure you execute all following commands from the root project directory.

go get ./...
Configure .env file

Several environment variables need to be set up before developing this repository. An example .env file is provided (.env.example), and you may need to replace these example values environment variables. The .env file must be put in the root project directory for development.

Run server program
go run cmd/main.go
API Documentation Swagger

Install swag CLI:

go install github.com/swaggo/swag/cmd/swag@latest

Create or update swagger API documentation:

swag init -g ./cmd/main.go ./docs --pd true

You can visit the API documentation after starting up the server: http://localhost:8080/swagger/index.html#/

System Users

System roles

By default, the system has the following three different roles:

id name
0 Root Administrator
1 Administrator
2 Researcher
Initialise Root Administrator

Navigate to the following page to initialise the Root Administrator if the system has not had any user yet: http://localhost:8000/admin/adminInitialization.

Invite researchers

Login as an Administrator, hit this link (http://localhost:8000/admin/users) and click on the "Invite New" button to invite new users with the Researcher role. The login credential will be sent to the email address entered.

Invite new user

Frontend Development

For the frontend development, please refer to the website/README.md

Developer's Guide

Getting Start to run the whole project
Pipeline Migration

If you need to migrate and establish your own development pipeline, please refer to the following document:

License

Distributed under the MIT License. See LICENSE.txt for more information.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL