An open API service indexing awesome lists of open source software.

https://github.com/alexmochu/hackernews-react-apollo

This is a fullstack isomorphic app built in Javascript(React/Node) based on the GraphQL API architecture.
https://github.com/alexmochu/hackernews-react-apollo

api-client graphql graphql-api nodejs postgresql prisma react

Last synced: 3 months ago
JSON representation

This is a fullstack isomorphic app built in Javascript(React/Node) based on the GraphQL API architecture.

Awesome Lists containing this project

README

          

# HackerNews Clone
This is a fullstack isomorphic app built in Javascript(React/Node) based on the GraphQL API architecture.

## Tech Stack
- React
- Node
- Apollo/GraphQl
- Prisma
- PostgreSQL
## How to use

### 1. Clone repository

```sh
git clone https://github.com/alexmochu/hackernews-react-apollo.git
```

### 2. Install dependencies & Deploy the Prisma database API

To install the Prisma CLI globally with Yarn, use the following command:
```sh
yarn global add prisma
```

Also, run the following commands:
```sh
cd hackernews-react-apollo/server
yarn install
prisma deploy
```

Then, follow these steps in the interactive CLI wizard:

1. Select **Demo server**
1. **Authenticate** with Prisma Cloud in your browser (if necessary)
1. Back in your terminal, **confirm all suggested values**

Alternative: Run Prisma locally via Docker

1. Ensure you have Docker installed on your machine. If not, you can get it from [here](https://store.docker.com/search?offering=community&type=edition).
1. Create `docker-compose.yml` for MySQL (see [here](https://www.prisma.io/docs/prisma-server/database-connector-POSTGRES-jgfr/) for Postgres):
```yml
version: '3'
services:
prisma:
image: prismagraphql/prisma:1.23
restart: always
ports:
- "4466:4466"
environment:
PRISMA_CONFIG: |
port: 4466
databases:
default:
connector: mysql
host: mysql
port: 3306
user: root
password: prisma
migrations: true
mysql:
image: mysql:5.7
restart: always
environment:
MYSQL_ROOT_PASSWORD: prisma
volumes:
- mysql:/var/lib/mysql
volumes:
mysql:
```
1. Run `docker-compose up -d`
1. Run `prisma deploy`

### 3. Start the server

To start the server, all you need to do is execute the `start` script by running the following command inside the `server` directory:

```sh
yarn start
```

> **Note**: If you want to interact with the GraphQL API of the server inside a [GraphQL Playground](https://github.com/prisma/graphql-playground), you can navigate to [http://localhost:4000](http://localhost:4000).

### 4. Run the app

Now that the server is running, you can start the React app as well. The commands need to be run in a new terminal tab/window inside the root directory `hackernews-react-apollo` (because the current tab is blocked by the process running the server):

```sh
yarn install
yarn start
```

You can now open your browser and use the app on [http://localhost:3000](http://localhost:3000).