{"id":16298962,"url":"https://github.com/ghiscoding/realtime-todo-aurelia-auth-rethinkdb","last_synced_at":"2025-10-27T01:02:16.429Z","repository":{"id":15287177,"uuid":"58435510","full_name":"ghiscoding/Realtime-TODO-Aurelia-Auth-RethinkDB","owner":"ghiscoding","description":"A realtime TODO App with Aurelia, NodeJS and RethinkDB","archived":false,"fork":false,"pushed_at":"2022-06-07T21:19:00.000Z","size":1371,"stargazers_count":7,"open_issues_count":0,"forks_count":3,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-03-17T14:53:09.698Z","etag":null,"topics":["aurelia","koa","nodejs","realtime","realtime-todo","rethinkdb","socket"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ghiscoding.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"MIT-license.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2016-05-10T06:28:39.000Z","updated_at":"2018-09-02T06:40:51.000Z","dependencies_parsed_at":"2022-09-08T05:11:12.814Z","dependency_job_id":null,"html_url":"https://github.com/ghiscoding/Realtime-TODO-Aurelia-Auth-RethinkDB","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ghiscoding%2FRealtime-TODO-Aurelia-Auth-RethinkDB","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ghiscoding%2FRealtime-TODO-Aurelia-Auth-RethinkDB/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ghiscoding%2FRealtime-TODO-Aurelia-Auth-RethinkDB/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ghiscoding%2FRealtime-TODO-Aurelia-Auth-RethinkDB/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ghiscoding","download_url":"https://codeload.github.com/ghiscoding/Realtime-TODO-Aurelia-Auth-RethinkDB/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":244559710,"owners_count":20472206,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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":["aurelia","koa","nodejs","realtime","realtime-todo","rethinkdb","socket"],"created_at":"2024-10-10T20:46:07.416Z","updated_at":"2025-10-27T01:02:11.406Z","avatar_url":"https://github.com/ghiscoding.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"A Realtime TODO App with [Aurelia](http://aurelia.io), [Socket.IO](http://socket.io/), [Node.js](http://www.nodejs.org/), [Koa](http://koajs.com/) and [RethinkDB](https://www.rethinkdb.com/).\n\nA summary of tech stack:\n* **Client**: [Aurelia](http://aurelia.io/), [Bootstrap 4](http://getbootstrap.com/), [Font-Awesome](http://fontawesome.io/) and [Aurelia-Bootstrap-Plugins](https://github.com/ghiscoding/Aurelia-Bootstrap-Plugins) ...my own creation :smile:.\n* **Server**: [Koa 2](http://koajs.com/) for RESTful API serving on [Node.js](https://nodejs.org/).\n* **[Socket.IO](http://socket.io/)** along with JSON-RPC is used for real-time client-server communication and browser sync.\n* **[RethinkDB](https://rethinkdb.com/)** as the best open-source database for the realtime web.\n* **[TypeScript](https://www.typescriptlang.org)** is used for both Aurelia \u0026 NodeJS sides\n\n## Getting Started\nMake sure to have [Node.js](https://nodejs.org/) v8.x or higher, and [RethinkDB](https://rethinkdb.com/) v2.3.x or higher installed on your computer.\n\n### Git Clone (downloading)\n```bash\ngit clone https://github.com/ghiscoding/Realtime-TODO-Aurelia-Auth-RethinkDB\n```\n\n### OAuth Authentication with Aurelia-Auth\nWe will use [Aurelia-Auth](https://github.com/paulvanbladel/aurelia-auth) for OAuth login so that we can use (Google, Facebook, GitHub, LinkedIn, Windows Live or Twitter) to login to our application. The configuration of the OAuth secret keys will be under `server/config/config.development.js`, this file is however excluded from the project (for obvious reason).\n\n**A very important step to do, go under the folder `/server/config` and rename the file from `config.development.template.js` to `config.development.js` and then fill in your OAuth secret keys.**\n\nThe `Aurelia-Auth`is based on `Satellizer` and uses the same configurations, so you could refer to their [GitHub Satellizer](https://github.com/sahat/satellizer) repo for more details.\n\n### Database (RethinkDB)\nWe are using RethinkDB as our favorite NoSQL DB Server, you can use the default port of `28015`.\nAlso make sure to create a `test` database (if not yet created) with the following tables (`todos`, `users`, `customers`).\n\n### Client (TypeScript WebPack 3.x)\nPlease note that the `TypeScript Webpack` with the command line `npm start` will ONLY run the WebUI (Aurelia).\n\n#### Install/Run trough shell\nIf you want to run both the frontend/backend (WebUI w/Aurelia + WebAPI w/NodeJS), you can do so by calling `npm start -- withBackend` (make sure to follow the [Server installation](#server-nodejs---koa) prior to launching this command).\n```bash\ncd Realtime-TODO-Aurelia-Auth-RethinkDB\nnpm install # or: yarn install\nnpm start withBackend # or: yarn start withBackend\n```\n\n#### Install/Run through VSCode\nIf you use VSCode (Visual Studio Code) as your main editor, you can simply load the folder. Once loaded, you can then click on `Tasks` and then have access to multiple tasks (defined in `.vscode/tasks.json`) which makes it easy to execute the code without even typing any command in the shell (starting any of the Task `Starting X` task(s) will also run `npm install` or `yarn install` prior to run).\n##### Note on Default Packager\nYou can change the Default Packager to your liking by editing the `config.js` file with the packager you wish to use\n```javascript\n// config.js\nmodule.exports = {\n  webUiPort: 4000,\n  webApiPort: 5000,\n  packager: 'yarn'  // you can use 'npm or 'yarn'\n}\n```\n\n### Server (NodeJS - KOA)\n**Optional, see the note below**\n```bash\ncd Realtime-TODO-Aurelia-Auth-RethinkDB/server\nnpm install # or: yarn install\nnpm start # or: yarn start\n```\n\n_**Note**: running the server here is totally optional, since you might have already started it with the `backend` flag with CLI client or ` withBackend` to run both servers._\n\n## Web UI\nIf everything goes well, your application should now run locally on port `4000`. Open your browser and go to the URL [http://localhost:4000](http://localhost:4000).\n\n## Configuration\n### Server\nServer configurations are specified in the [/server/config](https://github.com/ghiscoding/Realtime-TODO-Aurelia-Auth-RethinkDB/blob/master/config.js) directory. When running `npm start` it will load the configuration that is defined in your `process.env.NODE_ENV` (environment variable, if unset it will use `development` by default).\n\n### Default Ports\nDefault ports for this application are `4000` for the WebUI and `5000` for the API (server) calls.\nYou can change these ports by going into the [config.js](https://github.com/ghiscoding/Realtime-TODO-Aurelia-Auth-RethinkDB/blob/master/config.js) that is located in the root of the project.\n\n#### WebPack with TypeScript\nPlease note that the `webpack.config.js` and `package-scripts.js` were modifed to use the `config.js` to make it easier to configure.\n\n## Contributions\nContributions are welcome. I use this project as a placeholder to help (and be helped by) people, which is all about the open community. So please feel free to make any PR (Pull Request).\n\n## License\nMIT\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fghiscoding%2Frealtime-todo-aurelia-auth-rethinkdb","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fghiscoding%2Frealtime-todo-aurelia-auth-rethinkdb","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fghiscoding%2Frealtime-todo-aurelia-auth-rethinkdb/lists"}