{"id":18512703,"url":"https://github.com/allenlili/unsw-room-finder-nodebackend","last_synced_at":"2026-05-05T14:33:19.447Z","repository":{"id":175102721,"uuid":"152570124","full_name":"allenlili/unsw-room-finder-nodebackend","owner":"allenlili","description":"unsw-room-finder-nodebackend","archived":false,"fork":false,"pushed_at":"2018-10-11T10:04:15.000Z","size":8384,"stargazers_count":0,"open_issues_count":0,"forks_count":1,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-05-14T12:18:46.681Z","etag":null,"topics":["aws","bot","docker","javascript","messenger","nlp","node","wit"],"latest_commit_sha":null,"homepage":null,"language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/allenlili.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2018-10-11T09:59:59.000Z","updated_at":"2018-10-11T10:06:26.000Z","dependencies_parsed_at":"2023-07-16T11:30:47.750Z","dependency_job_id":null,"html_url":"https://github.com/allenlili/unsw-room-finder-nodebackend","commit_stats":null,"previous_names":["allenlili/unsw-room-finder-nodebackend"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/allenlili/unsw-room-finder-nodebackend","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/allenlili%2Funsw-room-finder-nodebackend","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/allenlili%2Funsw-room-finder-nodebackend/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/allenlili%2Funsw-room-finder-nodebackend/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/allenlili%2Funsw-room-finder-nodebackend/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/allenlili","download_url":"https://codeload.github.com/allenlili/unsw-room-finder-nodebackend/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/allenlili%2Funsw-room-finder-nodebackend/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32653558,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-05T11:29:49.557Z","status":"ssl_error","status_checked_at":"2026-05-05T11:29:48.587Z","response_time":54,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["aws","bot","docker","javascript","messenger","nlp","node","wit"],"created_at":"2024-11-06T15:35:05.662Z","updated_at":"2026-05-05T14:33:19.432Z","avatar_url":"https://github.com/allenlili.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Quickstart (for marking/tutors)\n\nTo make it easier to run our bot, we have uploaded the complete dist/ folder to this repo - this includes the transpiled code and a config file that connects to our demo pages and databases. The Facebook data must be updated with your own data, because Messenger bots require developer apps set up to use (unless they have been verified, which is outside of project scope).\n\nPlease make sure you have nodejs (LTS - v6) installed before doing the following:\n\n1. Clone the repo\n    * *Optionally* run `make` to have a fresh `dist/` folder based on current `src/` folder\n2. Open `dist/config/secret.json` and edit the \"facebook\" object with your demo page data (page access token, verify token, app secret, and app id), then save\n3. `$ cd dist/`\n4. `$ node src/app.js`\n\nThe bot should now be running on port 443 - you can use a reverse proxy such as nginx or ngrok to tunnel the Facebook messenger webhooks to the bot instance. These tunnels must be over *HTTPS* (not just HTTP), otherwise Facebook will complain!\n\nIf you use the bot on the page corresponding to the data you provided in the `config.json` file, it should now reply! 😊\n\nFor detailed docs on ***all the provided functions*** in the source code, [visit this link.](http://z5016959.web.cse.unsw.edu.au/docs/index.html) The rest of the documentation, including demo screenshots can be seen in this README right here.\n\n## Setup Wit.ai (if NLP is desired)\n1. Sign up for a Wit.ai account here: https://wit.ai\n2. Click `https://wit.ai/AL_Allen/CampusRoomBookingBot`\n3. Paste *your* server access token into the `dist/config/secret.json` file\n4. Provide the token from Wit.ai to your Facebook bot page, in the \"NLP\" section in \"Messenger\" settings\n\nNLP should now be available for top-level functions such as Help (type \"What do I do?\", or \"Help me\"), and finding random rooms (try \"Any rooms?\", or \"Anything free?\").\n\n# Project structure\n\nThe structure of this project is as follows:\n\n- config/\n    - Contains all config templates and data\n- dist/\n    - Pre-transpiled js, which can run in Node.js LTS\n- docs/\n    - Bot documentation, generated by documentation.js based on code comments\n- nlp/\n    - Natural Language Processing models and entities, downloaded from our training set and data from wit.ai\n- screenshots/\n    - Screenshots to be shown in the README below\n- scripts/\n    - Docker and build script utilities\n- src/\n    - Main source code folder - all business logic and code sits in here\n- test/\n    - Some rudimentary tests\n- /\n    - Root folder contains all js rc files, npm files, makefile, dockerfile, and README itself\n\n# Quick usage demo (main application features)\n## Start off by clicking \"Get started\"\n\u003ca\u003e\u003cimg src=\"screenshots/1_1_start.png\" width=\"50%\" height=\"auto\" \u003e\u003c/a\u003e\n\n---\n\n## Get some help by typing \"help\", or selecting Help from the menu\n\u003ca\u003e\u003cimg src=\"screenshots/2_1_help.png\" width=\"30%\" height=\"auto\" \u003e\u003c/a\u003e\n\u003ca\u003e\u003cimg src=\"screenshots/2_2_help.png\" width=\"30%\" height=\"auto\" \u003e\u003c/a\u003e\n\u003ca\u003e\u003cimg src=\"screenshots/2_3_help.png\" width=\"30%\" height=\"auto\" \u003e\u003c/a\u003e\n\n---\n\n## Report various issues by selecting Report Issue from the menu\n\u003ca\u003e\u003cimg src=\"screenshots/3_1_issues.png\" width=\"30%\" height=\"auto\" \u003e\u003c/a\u003e\n\u003ca\u003e\u003cimg src=\"screenshots/3_2_issues.png\" width=\"30%\" height=\"auto\" \u003e\u003c/a\u003e\n\u003ca\u003e\u003cimg src=\"screenshots/3_3_issues.png\" width=\"30%\" height=\"auto\" \u003e\u003c/a\u003e\n\u003c!-- \u003ca\u003e\u003cimg src=\"screenshots/3_4_issues.png\" width=\"33%\" height=\"auto\" \u003e\u003c/a\u003e --\u003e\n\n---\n\n## Find a random free room by selecting Feeling Lucky\n\u003c!-- \u003ca\u003e\u003cimg src=\"screenshots/4_1_lucky.png\" width=\"33%\" height=\"auto\" \u003e\u003c/a\u003e --\u003e\n\u003ca\u003e\u003cimg src=\"screenshots/4_2_lucky.png\" width=\"30%\" height=\"auto\" \u003e\u003c/a\u003e\n\u003ca\u003e\u003cimg src=\"screenshots/4_3_lucky.png\" width=\"30%\" height=\"auto\" \u003e\u003c/a\u003e\n\u003ca\u003e\u003cimg src=\"screenshots/4_4_lucky.png\" width=\"30%\" height=\"auto\" \u003e\u003c/a\u003e\n\u003c!-- \u003ca\u003e\u003cimg src=\"screenshots/4_5_lucky.png\" width=\"33%\" height=\"auto\" \u003e\u003c/a\u003e --\u003e\n\n---\n\n## Find a room more suited to your time or location by providing constraints\n\u003ca\u003e\u003cimg src=\"screenshots/5_1_spec.png\" width=\"30%\" height=\"auto\" \u003e\u003c/a\u003e\n\u003ca\u003e\u003cimg src=\"screenshots/5_2_spec.png\" width=\"30%\" height=\"auto\" \u003e\u003c/a\u003e\n\u003ca\u003e\u003cimg src=\"screenshots/5_3_spec.png\" width=\"30%\" height=\"auto\" \u003e\u003c/a\u003e\n\u003c!-- \u003ca\u003e\u003cimg src=\"screenshots/5_4_spec.png\" width=\"33%\" height=\"auto\" \u003e\u003c/a\u003e --\u003e\n\u003c!-- \u003ca\u003e\u003cimg src=\"screenshots/5_5_spec.png\" width=\"33%\" height=\"auto\" \u003e\u003c/a\u003e --\u003e\n\n---\n\n\u003c!-- \u003ca\u003e\u003cimg src=\"screenshots/6_1_final.png\" width=\"33%\" height=\"auto\" \u003e\u003c/a\u003e\n\n--- --\u003e\n\n# Advanced\n\nConsidering installing the following:\n\n- [jq](https://stedolan.github.io/jq/): a tool for manipulating json in the CLI as it'll help with the build\n- [docker](https://www.docker.com): where most of the build will be running\n\n## To build the docker image\n\n```\n./scripts/docker-build.bash\n```\n\n## To run the app\n\nFirst you'll want to make a copy of the config and enter your\nAPI keys in to config/secret.json. This file isn't commited to\nsource so you can generate an empty one with this.\n\n```\nmake config/secret.json\n```\n\nOnce the server is running i'll refresh after each change\nto source code.\n\n```\n# to start server on 8080\n./scripts/docker-make.bash run 8080 run\n\n# to stop\ndocker kill comp9323_make__run\n```\n\n## Auto build\n\nThis runs the build, it'll wait for changes before running\n\n```\n# to start\n./scripts/docker-make.bash devserver 1234 watch\n\n# to stop\ndocker kill comp9323_make__devserver\n```\n\n## Authors\n\n* **Allen Li**\n* **Angus**\n* **Zaki**\n\n## License\n\nThis project is licensed under the MIT License - see the [LICENSE.md](LICENSE.md) file for details\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fallenlili%2Funsw-room-finder-nodebackend","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fallenlili%2Funsw-room-finder-nodebackend","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fallenlili%2Funsw-room-finder-nodebackend/lists"}