Skip to content

πŸ“… Google calendar todo list application with GraphQL proxy

License

Notifications You must be signed in to change notification settings

evenchange4/calendar-todo

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

7 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Calendar-todo

Google calendar todo list application with GraphQL proxy.

Travis Codecov Status license

Demo

https://calendar-todo-web.now.sh/

There are two micro-services in this application:

  1. GraphQL Server: GraphQL proxy to Google calendar API
  2. Web: Website portal

stack

Usage

Pull automated-build images from DockerHub:

$ docker run --rm -it \
  -p 4000:4000 \
  -e "NODE_ENV=production" \
  -e "PORT=4000" \
  -e "DEBUG=server" \
  -e "GOOGLE_CLIENT_ID=927669772833-ou0jjulc4p68dbfmfnltjqk83rgd5mtr.apps.googleusercontent.com" \
  -e "GOOGLE_CLIENT_SECRET=jmn2fzU9n55PIX6FwswyWcDV" \
  -e "GOOGLE_REDIRECT_URL=urn:ietf:wg:oauth:2.0:oob" \
  evenchange4/calendar-todo-server:latest
# Enter the code...

$ docker run --rm -it \
  -p 4001:4001 \
  -e "NODE_ENV=production" \
  -e "PORT=4001" \
  -e "DEBUG=web" \
  -e "API_DOMAIN=http:https://localhost:4000/graphql" \
  evenchange4/calendar-todo-web:latest

Screenshot:

docker

Technology Stack

  • Apollo server 2 - GraphQL proxy server
  • Next.js - React Server side render
  • Apollo client
  • Material-ui
  • Docker & Pkg - binary in docker

Development

  • node >= v10.7.0
  • yarn >= 1.9.4

Get Google API Key

Your application must use OAuth 2.0 to authorize requests. https://developers.google.com/calendar/auth

Screenshot: auth

GraphQL server

$ cd packages/server
$ cp .env.example .env # input your own config
$ npm run dev # dev server
> πŸš€ Server ready at http:https://localhost:4000/graphql

# or
$ docker build -t calendar-todo/server .
Variable Default Description
NODE_ENV production
PORT 4000 Server port
DEBUG server for npm debug
GOOGLE_CLIENT_ID client id of google oauth
GOOGLE_CLIENT_SECRET client secret of google oauth
GOOGLE_REDIRECT_URL redirect url of google oauth

Screenshot: graphql


Web server

$ cd packages/web
$ cp .env.example .env # input your own config
$ npm run dev # dev server
> Ready on http:https://localhost:4001

# or
$ docker build -t calendar-todo/web .
Variable Default Description
NODE_ENV production
PORT 4001 Server port
DEBUG web for npm debug
API_DOMAIN Domain name of GraphQL proxy server

Screenshot: web

CONTRIBUTING

  • ⇄ Pull requests and β˜… Stars are always welcome.
  • For bugs and feature requests, please create an issue.
  • Pull requests must be accompanied by passing automated tests.

MIT: http:https://michaelhsu.mit-license.org

About

πŸ“… Google calendar todo list application with GraphQL proxy

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published