├── .dockerignore ├── .env.example ├── .eslintignore ├── .eslintrc.js ├── .gitignore ├── Dockerfile ├── LICENSE ├── README.md ├── docker-compose.yml ├── package.json ├── reference-implementation ├── .env.example ├── README.md ├── backend │ ├── Dockerfile │ ├── index.js │ ├── package.json │ └── src │ │ └── index.js └── frontend │ ├── .editorconfig │ ├── .env.example │ ├── .gitignore │ ├── .prettierrc.json │ ├── Dockerfile │ ├── README.md │ ├── env.d.ts │ ├── eslint.config.js │ ├── index.html │ ├── package-lock.json │ ├── package.json │ ├── public │ └── favicon.ico │ ├── src │ ├── App.vue │ ├── assets │ │ ├── base.css │ │ ├── logo.svg │ │ └── main.css │ ├── components │ │ ├── ChatInput.vue │ │ ├── ChatList.vue │ │ ├── ChatMessage.vue │ │ └── NewChatDialog.vue │ ├── main.ts │ ├── router │ │ └── index.ts │ ├── stores │ │ └── chat.ts │ └── views │ │ └── ChatView.vue │ ├── tsconfig.app.json │ ├── tsconfig.json │ ├── tsconfig.node.json │ └── vite.config.ts ├── scripts └── register-user.ts ├── src ├── config.ts ├── index.ts ├── middlewares │ └── validate.ts ├── models │ ├── change.ts │ ├── message.ts │ ├── session-token.ts │ └── user.ts ├── routes │ └── user-routes.ts ├── services │ └── change-stream.ts ├── socket │ ├── message-handlers.ts │ └── middleware.ts ├── test-client.js └── types.ts └── tsconfig.json /.dockerignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dashersw/rufer/HEAD/.dockerignore -------------------------------------------------------------------------------- /.env.example: -------------------------------------------------------------------------------- 1 | PORT=3000 2 | DATABASE_URL=mongodb+srv://user:pass@host/dbname 3 | RUFER_SECRET_KEY=your-secret-key-here 4 | -------------------------------------------------------------------------------- /.eslintignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | dist 3 | build 4 | coverage 5 | -------------------------------------------------------------------------------- /.eslintrc.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dashersw/rufer/HEAD/.eslintrc.js -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dashersw/rufer/HEAD/.gitignore -------------------------------------------------------------------------------- /Dockerfile: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dashersw/rufer/HEAD/Dockerfile -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dashersw/rufer/HEAD/LICENSE -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dashersw/rufer/HEAD/README.md -------------------------------------------------------------------------------- /docker-compose.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dashersw/rufer/HEAD/docker-compose.yml -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dashersw/rufer/HEAD/package.json -------------------------------------------------------------------------------- /reference-implementation/.env.example: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dashersw/rufer/HEAD/reference-implementation/.env.example -------------------------------------------------------------------------------- /reference-implementation/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dashersw/rufer/HEAD/reference-implementation/README.md -------------------------------------------------------------------------------- /reference-implementation/backend/Dockerfile: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dashersw/rufer/HEAD/reference-implementation/backend/Dockerfile -------------------------------------------------------------------------------- /reference-implementation/backend/index.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dashersw/rufer/HEAD/reference-implementation/backend/index.js -------------------------------------------------------------------------------- /reference-implementation/backend/package.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dashersw/rufer/HEAD/reference-implementation/backend/package.json -------------------------------------------------------------------------------- /reference-implementation/backend/src/index.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dashersw/rufer/HEAD/reference-implementation/backend/src/index.js -------------------------------------------------------------------------------- /reference-implementation/frontend/.editorconfig: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dashersw/rufer/HEAD/reference-implementation/frontend/.editorconfig -------------------------------------------------------------------------------- /reference-implementation/frontend/.env.example: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dashersw/rufer/HEAD/reference-implementation/frontend/.env.example -------------------------------------------------------------------------------- /reference-implementation/frontend/.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dashersw/rufer/HEAD/reference-implementation/frontend/.gitignore -------------------------------------------------------------------------------- /reference-implementation/frontend/.prettierrc.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dashersw/rufer/HEAD/reference-implementation/frontend/.prettierrc.json -------------------------------------------------------------------------------- /reference-implementation/frontend/Dockerfile: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dashersw/rufer/HEAD/reference-implementation/frontend/Dockerfile -------------------------------------------------------------------------------- /reference-implementation/frontend/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dashersw/rufer/HEAD/reference-implementation/frontend/README.md -------------------------------------------------------------------------------- /reference-implementation/frontend/env.d.ts: -------------------------------------------------------------------------------- 1 | /// 2 | -------------------------------------------------------------------------------- /reference-implementation/frontend/eslint.config.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dashersw/rufer/HEAD/reference-implementation/frontend/eslint.config.js -------------------------------------------------------------------------------- /reference-implementation/frontend/index.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dashersw/rufer/HEAD/reference-implementation/frontend/index.html -------------------------------------------------------------------------------- /reference-implementation/frontend/package-lock.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dashersw/rufer/HEAD/reference-implementation/frontend/package-lock.json -------------------------------------------------------------------------------- /reference-implementation/frontend/package.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dashersw/rufer/HEAD/reference-implementation/frontend/package.json -------------------------------------------------------------------------------- /reference-implementation/frontend/public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dashersw/rufer/HEAD/reference-implementation/frontend/public/favicon.ico -------------------------------------------------------------------------------- /reference-implementation/frontend/src/App.vue: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dashersw/rufer/HEAD/reference-implementation/frontend/src/App.vue -------------------------------------------------------------------------------- /reference-implementation/frontend/src/assets/base.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dashersw/rufer/HEAD/reference-implementation/frontend/src/assets/base.css -------------------------------------------------------------------------------- /reference-implementation/frontend/src/assets/logo.svg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dashersw/rufer/HEAD/reference-implementation/frontend/src/assets/logo.svg -------------------------------------------------------------------------------- /reference-implementation/frontend/src/assets/main.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dashersw/rufer/HEAD/reference-implementation/frontend/src/assets/main.css -------------------------------------------------------------------------------- /reference-implementation/frontend/src/components/ChatInput.vue: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dashersw/rufer/HEAD/reference-implementation/frontend/src/components/ChatInput.vue -------------------------------------------------------------------------------- /reference-implementation/frontend/src/components/ChatList.vue: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dashersw/rufer/HEAD/reference-implementation/frontend/src/components/ChatList.vue -------------------------------------------------------------------------------- /reference-implementation/frontend/src/components/ChatMessage.vue: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dashersw/rufer/HEAD/reference-implementation/frontend/src/components/ChatMessage.vue -------------------------------------------------------------------------------- /reference-implementation/frontend/src/components/NewChatDialog.vue: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dashersw/rufer/HEAD/reference-implementation/frontend/src/components/NewChatDialog.vue -------------------------------------------------------------------------------- /reference-implementation/frontend/src/main.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dashersw/rufer/HEAD/reference-implementation/frontend/src/main.ts -------------------------------------------------------------------------------- /reference-implementation/frontend/src/router/index.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dashersw/rufer/HEAD/reference-implementation/frontend/src/router/index.ts -------------------------------------------------------------------------------- /reference-implementation/frontend/src/stores/chat.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dashersw/rufer/HEAD/reference-implementation/frontend/src/stores/chat.ts -------------------------------------------------------------------------------- /reference-implementation/frontend/src/views/ChatView.vue: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dashersw/rufer/HEAD/reference-implementation/frontend/src/views/ChatView.vue -------------------------------------------------------------------------------- /reference-implementation/frontend/tsconfig.app.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dashersw/rufer/HEAD/reference-implementation/frontend/tsconfig.app.json -------------------------------------------------------------------------------- /reference-implementation/frontend/tsconfig.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dashersw/rufer/HEAD/reference-implementation/frontend/tsconfig.json -------------------------------------------------------------------------------- /reference-implementation/frontend/tsconfig.node.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dashersw/rufer/HEAD/reference-implementation/frontend/tsconfig.node.json -------------------------------------------------------------------------------- /reference-implementation/frontend/vite.config.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dashersw/rufer/HEAD/reference-implementation/frontend/vite.config.ts -------------------------------------------------------------------------------- /scripts/register-user.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dashersw/rufer/HEAD/scripts/register-user.ts -------------------------------------------------------------------------------- /src/config.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dashersw/rufer/HEAD/src/config.ts -------------------------------------------------------------------------------- /src/index.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dashersw/rufer/HEAD/src/index.ts -------------------------------------------------------------------------------- /src/middlewares/validate.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dashersw/rufer/HEAD/src/middlewares/validate.ts -------------------------------------------------------------------------------- /src/models/change.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dashersw/rufer/HEAD/src/models/change.ts -------------------------------------------------------------------------------- /src/models/message.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dashersw/rufer/HEAD/src/models/message.ts -------------------------------------------------------------------------------- /src/models/session-token.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dashersw/rufer/HEAD/src/models/session-token.ts -------------------------------------------------------------------------------- /src/models/user.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dashersw/rufer/HEAD/src/models/user.ts -------------------------------------------------------------------------------- /src/routes/user-routes.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dashersw/rufer/HEAD/src/routes/user-routes.ts -------------------------------------------------------------------------------- /src/services/change-stream.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dashersw/rufer/HEAD/src/services/change-stream.ts -------------------------------------------------------------------------------- /src/socket/message-handlers.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dashersw/rufer/HEAD/src/socket/message-handlers.ts -------------------------------------------------------------------------------- /src/socket/middleware.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dashersw/rufer/HEAD/src/socket/middleware.ts -------------------------------------------------------------------------------- /src/test-client.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dashersw/rufer/HEAD/src/test-client.js -------------------------------------------------------------------------------- /src/types.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dashersw/rufer/HEAD/src/types.ts -------------------------------------------------------------------------------- /tsconfig.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dashersw/rufer/HEAD/tsconfig.json --------------------------------------------------------------------------------