Skip to content

nokia-wroclaw/innovativeproject-check-room

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Check Room

Site that lets you quickly check room availability and make reservations.

Features:

  • integration with Google Calendar,
  • logging in with Google accounts,
  • searching and filtering rooms,
  • adding events, with room suggestions shown automatically,
  • generating QR codes,
  • admin panel for user and room management.

Project made under the Innovative Projects program.

Live at checkroom.herokuapp.com.

Running

To run locally using Docker, use:

docker build . -t cr
docker run -it -p 8000:8000 cr

For development, run simultaneously:

cd backend && npm run start
cd frontend && npm run start

Our backend expects these environment variables to be present:

GOOGLE_API_CREDENTIALS={"installed":{"client_id":"...","project_id":"...","auth_uri":"https://accounts.google.com/o/oauth2/auth","token_uri":"https://oauth2.googleapis.com/token","auth_provider_x509_cert_url":"https://www.googleapis.com/oauth2/v1/certs","client_secret":"...","redirect_uris":["urn:ietf:wg:oauth:2.0:oob","http://localhost"]}}
GOOGLE_API_TOKEN={"access_token":"...","refresh_token":"...","scope":"https://www.googleapis.com/auth/calendar","token_type":"Bearer","expiry_date":...}
MONGO_URL=mongodb+srv://...:...@.../...?retryWrites=true&w=majority
GOOGLE_CLIENT_SECRET=abcdefghijklmnopqrstu_wx
ENVIRONMENT=development

You can generate the API credentials in the Google Developer Console, and get the API token by running npm run get-google-token wizard in backend. ENVIRONMENT should be either development or production. Client secret is for logging in with Google functionality. If you set it, you will also need to change the ID in frontend/src/assets/configs/constants.js.

Our project supports .env files - you can place the variables into backend/.env file.

Development

We use VS Code with ESLint extension and additional settings:

"eslint.format.enable": true,
"[javascript]": {
    "editor.defaultFormatter": "dbaeumer.vscode-eslint"
}

ESLint settings are picked up only when the config is in the root folder, so we run editors for frontend and backend separately.

About

No description or website provided.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages