Powered by Go, PostgreSQL, React, Redux, Kubernetes, Cypress E2E and Github CI/CD
Demo
What's this project all about?
This project showcases how to build a Go parser that converts (almost) anything(YAML, TOML, CSV, and EXCEL) to JSON and upload it to Github Gist. We focus on the following aspects as part of this project.
- 1. Build an efficient Golang parser that takes (YAML/TOML/CSV/EXCEL) file as an input and converting it to JSON.
- 2. Build a Golang API service with JWT support using Golang's Gin framework and authenticate users using Github Oauth.
- 3. Take the converted JSON by Golang parser and upload it to Github Gist.
- 4. Build UI using React and Redux.
- 5. Deployment using Kubernetes.
Start the application
- Register a new Github OAuth application - https://github.com/settings/applications/new

- Get the Github Client ID and Client Secret.

- Create a new Github access token with Gist Write permissions - https://github.com/settings/tokens

- Update the Github client ID in your React applications .env.dev file.
[email protected] gistify % cat frontend/.env.dev
REACT_APP_API_ENDPOINT = "http://localhost:8003"
REACT_APP_GITHUB_CLIENT_ID = "21c29d28ab59b778a8bd"
REACT_APP_COOKIE_DOMAIN = "localhost"
- Set the following environment variables with Github client ID, Github client secret, Github API token, and JWT secret key.
export GISTIFY_APP_ENV="DEV"
export GISTIFY_DEV_APP_URL="http://localhost:3000/"
export GISTIFY_DEV_GITHUB_CLIENT_ID=""
export GISTIFY_DEV_GITHUB_CLIENT_SECRET=""
export GISTIFY_DEV_JWT_SECRET_KEY=""
export GISTIFY_DEV_GIST_API_TOKEN=""
- Start the Postgres container.
docker-compose up
- Start the React app.
cd frontend && npm run start
- Start the Backend app.
cd backend && go run main.go
