MeetEasier is a meeting room dashboard for Office 365
716
Because why pay money for something you can do yourself?
MeetEasier is a web application that visualizes meeting room availability. It works using Exchange Web Services (EWS) with Exchange room lists in Office 365.

MeetEasier is licensed under the open source GNU General Public License (GPL 3.0).
In the event of wanting to commercially distribute a closed source modification of this code, please contact me.
ui-react/config/flightboard.config.js to handle all text so that the application can be multilingualui-react/config/singleRoom.config.js to do the same for the single-room componentconsole.log to server.js to know when the server is running correctlyThis application assumes you have:
web.config file for an IIS install$ npm install
ui-react/. In the package.json file, change:
"proxy" : "http://localhost:8080"
server.js.$ npm run build
$ npm start
$ npm start-ui-dev
app/ : Routes for EWS APIsconfig/ : All EWS functionalityscss/ : All stylesstatic/ : All global static filesui-react/ : Front end React routes and componentsThere are three main directories in the ui-react/src/ folder:
components/ : Components separated in folders by functionconfig/ : Customizable config file (see defails below in Customization section)layouts/ : Layout components for the two different layouts used.flightboard/ : All components related to the flightboard or "all meeting" layoutglobal : Components that will be used by both layoutssingle-room : All components related to the Single Room layoutboard/ : Actual flightboard component itselfclock/ : Clock component for the upper right hand of the displaynavbar/ : Top navigation/title bar pieceroom-filter/ : Room list filter in the navbarnot-found/ : A "not found" page if an error or "404" occurssocket/ : A service component to run the web socket connection for updating the flightboard and single room displayclock/ : Clock component for the upper right hand of the displaydisplay/ : All other features of the single room displayflightboard.config.js : Simple customization config explained in the Customization sectionflightboard/ : Layout for flightboard displaysingle-room/ : Layout for single room displayIn /config/auth.js, enter your credentials and domain:
module.exports = {
// this user MUST have full access to all the room accounts
'exchange' : {
'username' : '[email protected]',
'password' : 'PASSWORD',
'uri' : 'https://outlook.office365.com/EWS/Exchange.asmx'
},
'domain' : 'DOMAIN'
};
Alternatively, username, password and domain and public-URL can be set as environment variable. Keep in mind that if a public-URL has been provided, this environment variable already has to be set during the build-lifecycle
export [email protected]
export PASSWORD=password
export DOMAIN=domain.com
export PUBLIC_URL=http://meet-easier.domain.com
In /ui-react/src/config/flightboard.config.js, manage your customizations:
module.exports = {
'title' : 'Conference Room Availability',
'filterTitle' : 'Locations',
'filterAllTitle' : 'All Conference Rooms',
'roomsToSkip' : [
'[email protected]'
],
'socketEndpoint' : 'http://localhost:8080'
};
Upload your logo to /static/img/logo.png
config/ews.config/controller.js. By default, it is set to 1 minute.npm install -g grunt-cli. Then run grunt in the root directory to watch for SCSS changes. Use the .scss files located in the /scss folder.
.css file and importing it into the component itself if you'd prefer to do it that way.config/ews/rooms.js, there is a block of code on lines 37-39 that may not be necessary but were added as a convenience. Feel free to use it, comment it out, or remove it completely. It was designed for a use case where the email addresses (ex: [email protected]) do not match the corporate domain (ex: jsmith-enterprise).
// if the email domain != your corporate domain,
// replace email domain with domain from auth config
var email = roomItem.Address;
email = email.substring(0, email.indexOf('@'));
email = email + '@' + auth.domain + '.com';
LOG_LEVEL (allowed values are error, warn, info,
verbose, debug, silly). Default value is info. Severities equal or lower than debug will log responses of
the EWS requests to the console.To build the docker image, run
docker build .
Following environment variables can be set during build time:
PUBLIC_URL The public URL under which the application will be available. This has to be set for the websockets of
the UITo build the image with the environment variable, execute following command (with replaced URL):
docker build --build-arg PUBLIC_URL=http://meet-easier.your-domain.com .


Content type
Image
Digest
Size
125.6 MB
Last updated
almost 9 years ago
docker pull codekie/meet-easier