- Express - web framework for Node.js
- sequelize - ODM for RDBMS
- Passport - authentication middleware for Node.js
- GitHub OAuth - signing in with GitHub accounts
- Vue - frontend framework
- Vue router - the official router for Vue.js
- axios - handling ajax requests
- Amazon EC2 - hosting both frontend & backend of the application
- ElephantSQL - hosting the database
- NGINX - web server as a reverse proxy
- Clone this repository.
- Create the environment files
- Create
.env
underserver/
, sample as below:
PORT=3000
FRONTEND_URL=http://localhost:8080
GITHUB_CLIENT_ID=<your githu client id>
GITHUB_CLIENT_SECRET=<your github client secret>
SESSION_SECRET=some_secret
DB_NAME=<your db name>
DB_HOSTNAME=<host of your db>
DB_USERNAME=<db username>
DB_PASSWORD=<db password>
- Create
.env.local
underclient/
, sample as below:
VUE_APP_BASE_URL=/
VUE_APP_BACKEND_URL=http://localhost:3000/api/
VUE_APP_GITHUB_CLIENT_ID=<your github client id>
- Start the server for development purpose:
cd server && npm run dev
cd client && npm run serve
- Start the server for production:
cd server && npm run start
cd client && npm run build
Then serve the files under ciient/dist/
with a http server, i.e. NGINX.
MIT