Skip to content

Commit

Permalink
chore(README): update gateway readme
Browse files Browse the repository at this point in the history
Update README documentation for Gateway services.
Expand on on how to get started with Gateway services
and add references to Social App Template.

issue-603
  • Loading branch information
enddynayn committed Oct 10, 2024
1 parent 16063b9 commit 766a8c9
Showing 1 changed file with 69 additions and 70 deletions.
139 changes: 69 additions & 70 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,19 +1,19 @@
# Gateway
Gateway is a suite of microservices designed to simplify interactions with the Frequency blockchain, bridging the gap between Web2 and Web3 development.


<!-- TABLE OF CONTENTS -->

# 📗 Table of Contents

- [📖 About the Project](#about-project)
- [🔍 Arch Map](#-arch-maps)
- [🛠 Built With](#-built-with)
- [Tech Stack](#tech-stack)
- [🚀 Live OpenAPI Docs](#-live-docs)
- [💻 Getting Started](#-getting-started)
- [Prerequisites](#prerequisites)
- [Setup](#setup)
- [Usage](#usage)
- [Deployment](#deployment)
- [🔍 Architecture Map](#-arch-maps)
- [🔍 Gateway Microservices](#gateway-microservices)
- [💻 Getting Started](#getting-started)
- [🚀 Quick Start Guide](#quick-start-guide)
- [💻 Microservice Start Guide](#microservices-start-guide)
- [Deployment](#deployment)
- [🤝 Contributing](#-contributing)
- [🙏 Acknowledgements](#-acknowledgements)
- [📝 License](#-license)
Expand All @@ -22,11 +22,27 @@

# 📖 Gateway Services <a name="about-project"></a>

Gateway is a collection of services that helps make interacting with Frequency as easy as working with any Web2 API!
Gateway is a collection of services designed to simplify interactions with the Frequency blockchain. It bridges the gap between Web2 and Web3, allowing developers to interact with Frequency as easily as they would with any traditional Web2 API.

Key features:
- Modular architecture: Use each service independently to fit your specific needs
- Simplified blockchain interactions: Abstract away complex blockchain operations
- Web2-like experience: Familiar API patterns for Web2 developers

For a practical implementation example, check out our Social App Template [here](https://github.com/ProjectLibertyLabs/social-app-template), which demonstrates how to integrate these services into a full-fledged application.

<p align="right">(<a href="#-table-of-contents">back to top</a>)</p>

## 🚀 Live Docs <a name="-live-docs"></a>
Visit our Live API Documentation to start exploring the Gateway services.

**[Access Our Live API Docs Here](https://projectlibertylabs.github.io/gateway/)**

<p align="right">(<a href="#-table-of-contents">back to top</a>)</p>

<!-- Mermaid Arch maps -->

## 🔭 Arch Maps
## 🔭 Architecture Maps <a name="-arch-maps"></a>

### Overview Gateway Services

Expand All @@ -45,120 +61,103 @@ flowchart LR;
S --> GS
S --> CPS
S --> CWS
S --> RS
subgraph Public
F(Frequency Network)
end
AS --> F
GS --> F
CPS --> F
CWS --> F
RS --> F
```

<p align="right">(<a href="#-table-of-contents">back to top</a>)</p>

## 🛠 Built With

Each Gateway service is an independent microservice.

### Tech Stack

<details>
<summary>Account Service</summary>

- [API Documentation](https://projectlibertylabs.github.io/gateway/account)
- [README](./developer-docs/account/README.md)

</details>

<details>
<summary>Graph Service</summary>

- [API Documentation](https://projectlibertylabs.github.io/gateway/graph/)
- [README](./developer-docs/graph/README.md)

</details>

<details>
<summary>Content Publishing Service</summary>
## Gateway Microservices <a name="gateway-microservices"></a>

- [API Documentation](https://projectlibertylabs.github.io/gateway/content-publishing/)
- [README](./developer-docs/content-publishing/README.md)
Gateway consists of four independent microservices, each designed to handle specific aspects of interaction with the Frequency blockchain. Below is a detailed overview of each service:

</details>
| Service | Description | API Documentation | README |
|---------|-------------|-------------------|--------|
| Account Service | Manages user accounts and authentication on the Frequency blockchain. It handles tasks such as account creation, and key management. | [API Docs](https://projectlibertylabs.github.io/gateway/account) | [README](./developer-docs/account/README.md) |
| Graph Service | Manages social connections and relationships between users on the Frequency network. It handles operations like following/unfollowing users and retrieving social graphs. | [API Docs](https://projectlibertylabs.github.io/gateway/graph/) | [README](./developer-docs/graph/README.md) |
| Content Publishing Service | Facilitates the creation and publication of content on the Frequency blockchain. It manages tasks such as posting messages, creating threads, and content moderation. | [API Docs](https://projectlibertylabs.github.io/gateway/content-publishing/) | [README](./developer-docs/content-publishing/README.md) |
| Content Watcher Service | Monitors and retrieves content updates from the Frequency blockchain. It allows applications to efficiently track and display new content as it's published. | [API Docs](https://projectlibertylabs.github.io/gateway/content-watcher/) | [README](./developer-docs/content-watcher/README.md) |

<details>
<summary>Content Watcher Service</summary>

- [API Documentation](https://projectlibertylabs.github.io/gateway/content-watcher/)
- [README](./developer-docs/content-watcher/README.md)

</details>

<!-- LIVE Docs -->
<p align="right">(<a href="#-table-of-contents">back to top</a>)</p>

## 🚀 Live Docs
### Key Features of Gateway Microservices

- [Live Docs](https://projectlibertylabs.github.io/gateway/)
- **Modularity**: Each service can be used independently, allowing developers to integrate only the functionalities they need.
- **Scalability**: The microservice architecture allows for easy scaling of individual services based on demand.
- **Simplified Blockchain Interaction**: These services abstract complex blockchain operations, providing a familiar API-based interface for developers.
- **Comprehensive Documentation**: Each service comes with detailed API documentation and a README file for easy integration and usage.

<p align="right">(<a href="#-table-of-contents">back to top</a>)</p>

<!-- GETTING STARTED -->

## 💻 Getting Started

For a more detailed tutorial, visit [Live Docs](https://projectlibertylabs.github.io/gateway/).

To get a local copy up and running, follow these steps.
<!-- GETTING STARTED -->

### Prerequisites
## 💻 Getting Started <a name="getting-started"></a>

In order to run this project you need:
Gateway offers flexibility in how you can use its services. You can either quickly set up all services or selectively use specific microservices based on your needs. Below, we provide both a Quick Start guide for setting up all services and information on how to get started with individual microservices.

- [Docker](https://www.docker.com) or Docker compatible layer for running Gateway Services
- [mdBook](https://rust-lang.github.io/mdBook/) for building documentation

### Setup
### 🚀 Quick Start Guide <a name="quick-start-guide"></a>

Clone this repository to your desired folder:
Follow these steps to quickly get all Gateway services up and running:

Clone:
1. **Prerequisites**:
In order to run this project you need:
- [Docker](https://www.docker.com) or Docker compatible layer for running Gateway Services
- [mdBook](https://rust-lang.github.io/mdBook/) for building documentation

2. **Clone the Repository**:
```sh
git clone git@github.com:ProjectLibertyLabs/gateway.git
cd gateway
```

### Usage

To run all Gateway services, execute the following command:
3. **Start all Services**

```sh
./start.sh
```
This script will start all Gateway microservices using Docker.

To stop the Gateway services, execute the following command:
4. **Stop all Services**

```sh
./stop.sh
```
Use this script when you need to stop all running Gateway services.

To build the Gateway Documentation:
5. **Build Gateway Documentation**

```sh
cd docs
mdbook build
```

To build and serve the Gateway Documentation:
6. **Build and Serve Gateway Documentation**

```sh
cd docs
mdbook serve
```

### Deployment
### Getting Started with Microservices <a name="microservices-start-guide"></a>

To begin using these microservices:

1. Decide which services your application needs.
2. Review the API documentation for each required service. See the [Live Docs](https://projectlibertylabs.github.io/gateway/) or <a name="gateway-microservices">README</a> for more details.
3. Integrate the service APIs into your application using the documentation as a guide.

For a practical example of how these services can be used together, check out our [Social App Template](https://github.com/ProjectLibertyLabs/social-app-template).

<p align="right">(<a href="#-table-of-contents">back to top</a>)</p>

## Deployment <a name="deployment"></a>

Deployment of the Gateway services have various options. See the [Live Docs](https://projectlibertylabs.github.io/gateway/) for more details.

Expand Down

0 comments on commit 766a8c9

Please sign in to comment.