https://github.com/atomicobject/roommate-lambda
AO Conference Room IoT Project - Backend
https://github.com/atomicobject/roommate-lambda
Last synced: 8 months ago
JSON representation
AO Conference Room IoT Project - Backend
- Host: GitHub
- URL: https://github.com/atomicobject/roommate-lambda
- Owner: atomicobject
- Created: 2018-09-09T18:39:42.000Z (over 7 years ago)
- Default Branch: master
- Last Pushed: 2022-12-08T14:52:38.000Z (over 3 years ago)
- Last Synced: 2025-06-08T22:08:12.286Z (11 months ago)
- Language: F#
- Homepage:
- Size: 219 KB
- Stars: 2
- Watchers: 2
- Forks: 0
- Open Issues: 12
-
Metadata Files:
- Readme: Readme.md
Awesome Lists containing this project
README
# Roommate - Backend
_Roommate_ is a project to create a conference room gadget that displays availability, takes impromptu reservations, etc.
This repo contains the cloud backend (F#, AWS Lambda) and a command-line tool.
| Embedded Device | Cloud Backend |
| ------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------- |
| [atomicobject/roommate](https://github.com/atomicobject/roommate) | [atomicobject/roommate-lambda](https://github.com/atomicobject/roommate-lambda) |
| [](https://circleci.com/gh/atomicobject/roommate) | [](https://circleci.com/gh/atomicobject/roommate-lambda) |
## Prerequisites
- [.NET Core SDK](https://www.microsoft.com/net/download)
## Build and Run
- `dotnet build` to build the solution
- `dotnet test` to run tests.
## What's What
- **roommate** - business logic
- **roommate.test** - tests for it
- **roommate-tool** - CLI tool for testing and miscellaneous functionality
- **roommate-lambda** - AWS Lambda functions
- **roommate-lambda.Tests** - tests targeting Lambda functions (currently unused)
## Google Calendar
This project integrates with [Google Calendar](https://developers.google.com/calendar/overview) to view room availability, schedule meetings, etc. To do this locally, you'll need to enable the API on your Google account and grab a pair of credentials. I neglected to document the detailed process for creating them, but it starts here: https://console.cloud.google.com/apis
Put the "Client ID" and "Client Secret" in environment variables so **Roommate-tool** can find them. I keep an unversioned script that looks like this:
```
export googleClientId=asdfasdfasdf
export googleClientSecret=jkljkljkl
```
(then you can e.g. `source env.sh`)