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.
- Host: GitHub
- URL: https://github.com/alexmochu/hackernews-react-apollo
- Owner: alexmochu
- Created: 2018-10-28T16:39:25.000Z (over 7 years ago)
- Default Branch: master
- Last Pushed: 2020-07-06T08:57:43.000Z (about 6 years ago)
- Last Synced: 2025-06-25T17:12:31.876Z (about 1 year ago)
- Topics: api-client, graphql, graphql-api, nodejs, postgresql, prisma, react
- Language: JavaScript
- Homepage:
- Size: 1.27 MB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
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).