• Stars
    star
    402
  • Rank 107,380 (Top 3 %)
  • Language
    Go
  • License
    Apache License 2.0
  • Created almost 5 years ago
  • Updated over 1 year ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

A GraphQL-based Web App written with Go, React and MongoDB

SKMZ Build Status

A web application that allows to query programmers with their skills via a GraphQL API. The application is implemented with Go and gqlgen on the backend side and React on the front end side. MongoDB is used as a database.

Showcase

System requirements

You need to have Docker and Docker Compose installed in oder to build and run the project. No additional tools required.

How to build and run in production mode

Perform

docker-compose up

Access the application via http://localhost:8080. Access the GraphQL Playground using http://localhost:8080/playground.

How to develop locally

Tools

In order to develop the app locally the following tools are required: Docker, Docker Compose (if you are on Mac or Windows it comes installed with Docker), Node.js and Go.

Verify if your environment is ready by running the following 4 commands:

docker --version
docker-compose --version
npm --version
go version

Start the dev DB

docker-compose -f docker-compose-dev.yml up

This will start a local MongoDB which will be accessible on port 27017. The DB will be populated with test records from mongo.init.

Start the server

Navigate to the /server folder and execute:

go run server.go

This will compile and run the back end part. As a result, the API and the GraphQL playground will be available.

Start the Front End dev server

Navigate to the /webapp folder and execute the following commands:

npm install
npm start

As a result, the web site will be accessible on http://localhost:3000.

The changes on the front end side will be automatically applied once a file is saved. The changes in the back end code require restarting the back end.

Customizations

The database starts with a preloaded set of data which can be customized in the mongo.init file.

Here is an example of a GraphQL query which can be run in the Playground:

query {
  programmers(skill: "go") { 
    name,
    picture,
    title,
    company,
    skills {
      name,
      icon,
      importance
    }
  }
}

More Repositories

1

goxygen

Generate a modern Web project with Go and Angular, React, or Vue in seconds 🎲
Go
3,378
star
2

github-activity-generator

A script that helps generate a rich GitHub Contribution Graph for your account 🤖
Python
1,010
star
3

go-angular

A simple CRUD application written with Go and Angular
TypeScript
76
star
4

zeit

A Fitbit clock face for learners of the German language 🕐
TypeScript
45
star
5

twitter-plugin

IntelliJ IDE plugin that helps post code to Twitter
Kotlin
18
star
6

dto-generation-plugin

A show-case project demonstrating extension of IntelliJ IDEA's functionality
Java
15
star
7

COBOL.now

Now is the time to COBOL!
COBOL
15
star
8

sha256

A shortcut script that helps verify sha256 sums faster
Shell
12
star
9

role-based-athorization-in-nestj

Role-based Authorization with JWT using NestJS
TypeScript
7
star
10

ProgressBarExample

An Android app demonstrating how to use ProgressBar with AsyncTask
Java
5
star
11

game-contract

Tic-Tac-Toe Game Solana Contract 🦄
Rust
5
star
12

grpc-wallet

A simple wallet gRPC API implementation with Spring Boot and MySQL
Java
5
star
13

video-game-star-wars

A simple 2D video game written with Java. The game is implemented using only standard lib
Java
4
star
14

fr-builders

A collection of Docker images creating front end applications
Dockerfile
4
star
15

rainy-hills

Rainy Hills problem solver implemented in Java with Wildfly Swarm
Java
4
star
16

shpota.github.io

My personal web site
HTML
4
star
17

solana-wallet-linking

An example of verifying a Solana wallet signature in Java
JavaScript
3
star
18

do-while-loop-implementation-in-scala

'Handmade' implementation of DO-WHILE loop using only build-in Scala features.
Scala
2
star
19

LuceneWebSearch

This is the web search application which allows to index web pages and to search a particular data over indexed information
Java
2
star
20

shpota

1
star
21

cde

Continuous Delivery Example with Git, Docker and Kubernetes
Python
1
star
22

sashashpota.com

Redirect from sashashpota.com to shpota.com
1
star