{"id":20975043,"url":"https://github.com/boostcampwm2023/web13_boarlog","last_synced_at":"2025-05-14T13:32:28.968Z","repository":{"id":205737904,"uuid":"714851575","full_name":"boostcampwm2023/web13_Boarlog","owner":"boostcampwm2023","description":"🙂 기록으로 남기는 실시간 화이트보드 강의, Boarlog","archived":false,"fork":false,"pushed_at":"2024-04-06T14:54:39.000Z","size":12488,"stargazers_count":34,"open_issues_count":11,"forks_count":0,"subscribers_count":3,"default_branch":"dev","last_synced_at":"2025-04-02T18:51:50.688Z","etag":null,"topics":["fabricjs","mongodb","nestjs","react","redis","typescript","webrtc"],"latest_commit_sha":null,"homepage":"https://boarlog.netlify.app/","language":"TypeScript","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/boostcampwm2023.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":"2023-11-06T01:10:25.000Z","updated_at":"2025-03-26T01:25:24.000Z","dependencies_parsed_at":"2024-03-19T14:53:35.199Z","dependency_job_id":"2fa42d26-b687-41b5-961b-3874d351e375","html_url":"https://github.com/boostcampwm2023/web13_Boarlog","commit_stats":null,"previous_names":["boostcampwm2023/web13_team_528"],"tags_count":3,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/boostcampwm2023%2Fweb13_Boarlog","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/boostcampwm2023%2Fweb13_Boarlog/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/boostcampwm2023%2Fweb13_Boarlog/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/boostcampwm2023%2Fweb13_Boarlog/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/boostcampwm2023","download_url":"https://codeload.github.com/boostcampwm2023/web13_Boarlog/tar.gz/refs/heads/dev","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254150640,"owners_count":22023003,"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":["fabricjs","mongodb","nestjs","react","redis","typescript","webrtc"],"created_at":"2024-11-19T04:37:30.061Z","updated_at":"2025-05-14T13:32:23.942Z","avatar_url":"https://github.com/boostcampwm2023.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"\n![boarlog1](https://github.com/boostcampwm2023/web13_Boarlog/assets/86391351/89de8827-e5ac-4494-a196-982af8ea2c5f)\n\n\n\u003cp align=\"center\"\u003e\n\u003ca href=\"https://boarlog.netlify.app\"\u003e\n\u003cimg width=\"300\" alt=\"배포 패이지로 이동\" src=\"https://github.com/boostcampwm2023/web13_Boarlog/assets/86391351/2465c664-cf4f-405b-ae2c-d09cbe86e597\"/\u003e\n\u003c/a\u003e\n\u003c/p\u003e\n\n\u003cbr/\u003e\n\n\u003cp align=center\u003e\n  \u003ca href=\"https://boarlog.notion.site/\"\u003e노션\u003c/a\u003e\n  \u0026nbsp; | \u0026nbsp; \n  \u003ca href=\"https://weak-sugar-603.notion.site/d1fb2080ff934e859d50c5cd3620e223\"\u003e백로그\u003c/a\u003e\n  \u0026nbsp; | \u0026nbsp;\n  \u003ca href=\"https://www.figma.com/file/1wp3yrrwOU6M7y7v5WOXet/%EB%94%94%EC%9E%90%EC%9D%B8-%EC%8B%9C%EC%95%88?type=design\u0026node-id=33-8035\u0026mode=design\u0026t=kKUoymq1TBmjD0HR-0\"\u003e피그마\u003c/a\u003e\n  \u0026nbsp; | \u0026nbsp; \n  \u003ca href=\"https://github.com/boostcampwm2023/web13_Boarlog/wiki\"\u003e위키\u003c/a\u003e\n\u003c/p\u003e\n\n\u003cp align=center\u003e\n  \u003ca href=\"https://youtu.be/2WOme3P0Hw8?si=4e2pvwhAJANnHxjZ\"\u003e시연 영상\u003c/a\u003e\n  \u0026nbsp; | \u0026nbsp; \n  \u003ca href=\"https://boarlog.netlify.app/\"\u003e서비스 링크\u003c/a\u003e\n\u003c/p\u003e\n\n\u003cbr/\u003e\n\n\u003cdiv align=\"center\"\u003e\n\u003ca href=\"https://hits.seeyoufarm.com\"\u003e\u003cimg src=\"https://hits.seeyoufarm.com/api/count/incr/badge.svg?url=https%3A%2F%2Fgithub.com%2Fboostcampwm2023%2Fweb13_Boarlog\u0026count_bg=%2379C83D\u0026title_bg=%23555555\u0026icon=\u0026icon_color=%23E7E7E7\u0026title=hits\u0026edge_flat=false\"/\u003e\u003c/a\u003e\n\u003c/div\u003e\n\n\u003cbr/\u003e\n\n## Boarlog의 주요 기능\n\n### 🧑‍🏫 강의 생성 및 진행\n\n\u003e 강의자가 강의를 생성하고, **음성**으로 강의하며 **화이트보드**를 실시간으로 편집할 수 있습니다. 또한, 참여자의 질문을 받아 화이트보드에 포스트잇 형태로 추가할 수 있습니다.\n\n\u003ctable align=center\u003e\n\u003ctr\u003e\n  \u003ctd\u003e\n\t  \u003cvideo src=\"https://github.com/boostcampwm2023/web13_Boarlog/assets/86391351/4c24d511-7914-4d2e-aafc-303568c015f4\" /\u003e\n  \u003c/td\u003e\n  \u003ctd\u003e\n\t  \u003cvideo src=\"https://github.com/boostcampwm2023/web13_Boarlog/assets/86391351/1e9d5624-71ad-46d3-801f-c0a74317807d\" /\u003e\n  \u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n  \u003ctd\u003e\n    \u003cp align=center\u003e강의 생성 및 마이크 설정\u003c/p\u003e\n  \u003c/td\u003e\n  \u003ctd\u003e\n    \u003cp align=center\u003e 화이트보드 편집 및 질문 확인\u003c/p\u003e\n  \u003c/td\u003e\n\u003c/tr\u003e\n\u003c/table\u003e\n\n\u003cbr/\u003e\n\n### 🧑‍🎓 강의 참여 및 피드백\n\n\u003e 강의자가 공유한 **강의번호**를 입력하여 강의에 참여하고, 강의자의 음성과 화이트보드 내용을 실시간으로 볼 수 있습니다. 강의자에게 질문을 보낼 수도 있습니다.\n\n\u003ctable align=center\u003e\n\u003ctr\u003e\n  \u003ctd\u003e\n\t  \u003cvideo src=\"https://github.com/boostcampwm2023/web13_Boarlog/assets/86391351/0e75f788-510b-4ed6-9906-b7349c8092fb\" /\u003e\n  \u003c/td\u003e\n  \u003ctd\u003e\n\t  \u003cvideo src=\"https://github.com/boostcampwm2023/web13_Boarlog/assets/86391351/ea59d6f4-b6d3-4f28-9d48-ff12dad66d3b\" /\u003e\n  \u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n  \u003ctd\u003e\n    \u003cp align=center\u003e강의실 입장 및 강의 내용 확인\u003c/p\u003e\n  \u003c/td\u003e\n  \u003ctd\u003e\n    \u003cp align=center\u003e스피커 설정 및 질문하기\u003c/p\u003e\n  \u003c/td\u003e\n\u003c/tr\u003e\n\u003c/table\u003e\n\n\u003cbr/\u003e\n\n### 🎥 강의 다시보기\n\n\u003e 강의 종료 후에는 서버에서 화이트보드와 음성, AI를 이용한 음성 스크립트를 저장하여 언제든지 다시볼 수 있습니다.\n\n\u003ctable align=center\u003e\n\u003ctr\u003e\n  \u003ctd\u003e\n\t  \u003cvideo src=\"https://github.com/boostcampwm2023/web13_Boarlog/assets/54176384/67162997-fe6d-4fdc-b672-dbe8dcdebd02\" /\u003e\n  \u003c/td\u003e\n  \u003ctd\u003e\n\t  \u003cvideo src=\"https://github.com/boostcampwm2023/web13_Boarlog/assets/54176384/e679fc19-d9a8-4899-a274-b1f1a81c5c8c\" /\u003e\n  \u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n  \u003ctd\u003e\n    \u003cp align=center\u003e참여한 강의 내역 확인\u003c/p\u003e\n  \u003c/td\u003e\n  \u003ctd\u003e\n    \u003cp align=center\u003e강의 다시보기\u003c/p\u003e\n  \u003c/td\u003e\n\u003c/tr\u003e\n\u003c/table\u003e\n\n\u003cbr/\u003e\n\n## 클라이언트 요청 흐름도\n![서버 아키텍처](https://github.com/boostcampwm2023/web13_Boarlog/assets/70827921/43e476a7-6493-4ce9-b244-aba01cbf8612)\n\n\u003cbr/\u003e\n\n## Boarlog의 기술 스택\n\n\u003ctable align=center\u003e\n    \u003cthead\u003e\n        \u003ctr\u003e\n            \u003cth\u003ecategory\u003c/th\u003e\n            \u003cth\u003estack\u003c/th\u003e\n        \u003c/tr\u003e\n    \u003c/thead\u003e\n    \u003ctbody\u003e\n        \u003ctr\u003e\n            \u003ctd\u003e\n                \u003cp align=center\u003eCommon\u003c/p\u003e\n            \u003c/td\u003e\n            \u003ctd\u003e\n\t\t\u003cimg src=\"https://img.shields.io/badge/npm-CB3837?logo=npm\u0026logoColor=ffffff\"\u003e\n                \u003cimg src=\"https://img.shields.io/badge/WebRTC-333333?logo=webrtc\"\u003e\n                \u003cimg src=\"https://img.shields.io/badge/Socket.io-010101?logo=Socket.io\"\u003e\n                \u003cimg src=\"https://img.shields.io/badge/Prettier-F7B93E?logo=prettier\u0026logoColor=ffffff\"\u003e\n                \u003cimg src=\"https://img.shields.io/badge/ESLint-4B32C3?logo=Eslint\"\u003e\n\t\t\u003cimg src=\"https://img.shields.io/badge/TypeScript-3178C6?logo=typescript\u0026logoColor=ffffff\"\u003e\n                \u003cimg src=\"https://img.shields.io/badge/.ENV-ECD53F?logo=.ENV\u0026logoColor=ffffff\"\u003e\n            \u003c/td\u003e\n        \u003c/tr\u003e\n        \u003ctr\u003e\n            \u003ctd\u003e\n                  \u003cp align=center\u003eFrontend\u003c/p\u003e\n            \u003c/td\u003e\n            \u003ctd\u003e\n                \u003cimg src=\"https://img.shields.io/badge/React-61DAFB?logo=React\u0026logoColor=ffffff\"\u003e\n                \u003cimg src=\"https://img.shields.io/badge/Vite-646CFF?logo=Vite\u0026logoColor=ffffff\"\u003e\n                \u003cimg src=\"https://img.shields.io/badge/TailwindCSS-06B6D4?logo=tailwindcss\u0026logoColor=ffffff\"\u003e\n                \u003cimg src=\"https://img.shields.io/badge/Recoil-3578E5?logo=recoil\u0026logoColor=ffffff\"\u003e\n                \u003cimg src=\"https://img.shields.io/badge/Axios-5A29E4?logo=axios\u0026logoColor=ffffff\"\u003e\n\t\t\u003cimg src=\"https://github.com/boostcampwm2023/web13_Boarlog/assets/86391351/646e36a9-366d-4b91-9b42-a4e2eef584cd\"\u003e\n\t\t\u003cimg src=\"https://github.com/boostcampwm2023/web13_Boarlog/assets/86391351/54880738-cc88-4f63-8cfa-d955dc5721e3\"\u003e\n            \u003c/td\u003e\n        \u003c/tr\u003e\n        \u003ctr\u003e\n            \u003ctd\u003e\n                \u003cp align=center\u003eBackend\u003c/p\u003e\n            \u003c/td\u003e\n            \u003ctd\u003e\n                \u003cimg src=\"https://img.shields.io/badge/NestJS-E0234E?logo=nestjs\"\u003e\n                \u003cimg src=\"https://img.shields.io/badge/MongoDB-114411?logo=mongodb\"\u003e\n                \u003cimg src=\"https://img.shields.io/badge/Mongoose-114411?logo=mongodb\"\u003e\n                \u003cimg src=\"https://img.shields.io/badge/Redis-DC382D?logo=redis\u0026logoColor=ffffff\"\u003e\n            \u003c/td\u003e\n        \u003c/tr\u003e\n        \u003ctr\u003e\n            \u003ctd\u003e\n                \u003cp align=center\u003eCI/CD\u003c/p\u003e\n            \u003c/td\u003e\n            \u003ctd\u003e\n                 \u003cimg src=\"https://img.shields.io/badge/GitHub Actions-000000?logo=github-actions\"\u003e\n            \u003c/td\u003e\n        \u003c/tr\u003e\n                \u003ctr\u003e\n            \u003ctd\u003e\n                \u003cp align=center\u003eDeployment\u003c/p\u003e\n            \u003c/td\u003e\n            \u003ctd\u003e\n                \u003cimg src=\"https://img.shields.io/badge/Netlify-00C7B7?logo=netlify\u0026logoColor=ffffff\u0026\"\u003e\n                \u003cimg src=\"https://img.shields.io/badge/Docker-2496ED?logo=docker\u0026logoColor=ffffff\u0026\"\u003e\n                \u003cimg src=\"https://img.shields.io/badge/nginx-014532?logo=Nginx\u0026logoColor=009639\u0026\"\u003e\n                \u003cimg src=\"https://img.shields.io/badge/Naver Cloud Platform-03C75A?logo=naver\u0026logoColor=ffffff\"\u003e  \n            \u003c/td\u003e\n        \u003c/tr\u003e\n        \u003ctr\u003e\n            \u003ctd\u003e\n                \u003cp align=center\u003eCollaboration\u003c/p\u003e\n            \u003c/td\u003e\n            \u003ctd\u003e\n                \u003cimg src=\"https://img.shields.io/badge/Notion-000000?logo=Notion\"\u003e\n                \u003cimg src=\"https://img.shields.io/badge/Figma-F24E1E?logo=Figma\u0026logoColor=ffffff\"\u003e\n                \u003cimg src=\"https://img.shields.io/badge/Slack-4A154B?logo=Slack\u0026logoColor=ffffff\"\u003e\n            \u003c/td\u003e\n        \u003c/tr\u003e\n    \u003c/tbody\u003e\n\u003c/table\u003e\n\n\u003cbr/\u003e\n\n## 핵심 개발 일지\n\u003e **🔗 프로젝트 진행 과정에서 고민하고 도전한 과정이 담긴 핵심 개발 일지입니다.**\n\n- ```변진상``` : [프로그래스 바 구현과 성능 개선을 위한 트러블 슈팅](https://velog.io/@quswlstkd88/%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EC%8A%A4-%EB%B0%94-%EA%B5%AC%ED%98%84%EA%B3%BC-%EC%84%B1%EB%8A%A5-%EA%B0%9C%EC%84%A0%EC%9D%84-%EC%9C%84%ED%95%9C-%ED%8A%B8%EB%9F%AC%EB%B8%94-%EC%8A%88%ED%8C%85)\n- ```이동령``` : [반응형 UX를 위한 Modernizr 적용기](https://velog.io/@pexe99/Boarlog-%EC%9A%B0%EB%A6%AC-%EC%84%9C%EB%B9%84%EC%8A%A4%EB%8A%94-%EB%AA%A8%EB%B0%94%EC%9D%BC-%EC%82%AC%EC%A0%88%EC%9E%85%EB%8B%88%EB%8B%A4)\n- ```정주완``` : [실시간 화이트보드 공유 구현 과정](https://boarlog.notion.site/ad59de67865345ff8a91eed36d074820)\n- ```이승연``` : [DB 해킹 당한 뒤 VPC와 Subnet 활용한 재구축](https://boarlog.notion.site/DB-e4a9628f03c44b4e8c42670afe899117)\n- ```이현종``` : [미디어 서버 메모리 누수 원인 찾고 해결하기](https://www.notion.so/boarlog/939c0576a3394a049b2c1bdd29bbd51f)\n\u003cbr/\u003e\n\n## 팀 소개: TEAM_528\n\n```jsx\nconst camperIdArray = [\"J063\", \"J095\", \"J105\", \"J124\", \"J141\"];\n\nconst teamName = camperIdArray.reduce((team, camperId) =\u003e {\n  return (team += parseInt(camperId.replace(/[^0-9]/g, \"\")));\n}, 0);\n```\n\n\u003e 5명이 모여 **하나의** 개발자처럼 : J0**63** + J0**95** + J**105** + J**124** + J**141**\n\n`528`은 팀원 5명의 캠퍼 번호를 더한 숫자입니다. 5명의 캠퍼가 하나의 번호를 가지고 서로 다른 기술, 경험, 및 아이디어를 결합하여 시너지를 발휘하겠다는 의미입니다.\n\n\u003cbr/\u003e\n\n\u003ctable align=center\u003e\n    \u003cthead\u003e\n        \u003ctr\u003e\n            \u003cth\u003e변진상 (FE)\u003c/th\u003e\n            \u003cth\u003e이동령 (FE)\u003c/th\u003e\n            \u003cth\u003e이승연 (BE)\u003c/th\u003e\n            \u003cth\u003e이현종 (BE)\u003c/th\u003e\n            \u003cth\u003e정주완 (FE)\u003c/th\u003e\n        \u003c/tr\u003e\n    \u003c/thead\u003e\n    \u003ctbody align=center\u003e\n        \u003ctr\u003e\n            \u003ctd width=\"150\"\u003e\n              \u003ca href=\"https://github.com/Byeonjin\"\u003e\u003cimg width=\"120\" height=\"120\" src=\"https://avatars.githubusercontent.com/u/54176384?v=4\" /\u003e\u003c/a\u003e\n            \u003c/td\u003e\n            \u003ctd width=\"150\"\u003e\n              \u003ca href=\"https://github.com/LellowMellow\"\u003e\u003cimg width=\"120\" height=\"120\" src=\"https://avatars.githubusercontent.com/u/79556112?v=4\" /\u003e\u003c/a\u003e\n            \u003c/td\u003e\n            \u003ctd width=\"150\"\u003e\n              \u003ca href=\"https://github.com/tmddus2\"\u003e\u003cimg width=\"120\" height=\"120\" src=\"https://avatars.githubusercontent.com/u/49530253?v=4\" /\u003e\u003c/a\u003e\n            \u003c/td\u003e\n            \u003ctd width=\"150\"\u003e\n              \u003ca href=\"https://github.com/platinouss\"\u003e\u003cimg width=\"120\" height=\"120\" src=\"https://avatars.githubusercontent.com/u/70827921?v=4\" /\u003e\u003c/a\u003e\n            \u003c/td\u003e\n            \u003ctd width=\"150\"\u003e\n              \u003ca href=\"https://github.com/Jw705\"\u003e\u003cimg width=\"120\" height=\"120\" src=\"https://avatars.githubusercontent.com/u/86391351?v=4\" /\u003e\u003c/a\u003e\n            \u003c/td\u003e\n        \u003c/tr\u003e\n        \u003ctr\u003e\n            \u003ctd\u003e\u003ca href=\"https://github.com/Byeonjin\"\u003e@Byeonjin\u003c/a\u003e\u003c/td\u003e\n            \u003ctd\u003e\u003ca href=\"https://github.com/LellowMellow\"\u003e@LellowMellow\u003c/a\u003e\u003c/td\u003e\n            \u003ctd\u003e\u003ca href=\"https://github.com/tmddus2\"\u003e@tmddus2\u003c/a\u003e\u003c/td\u003e\n            \u003ctd\u003e\u003ca href=\"https://github.com/platinouss\"\u003e@platinouss\u003c/a\u003e\u003c/td\u003e\n            \u003ctd\u003e\u003ca href=\"https://github.com/Jw705\"\u003e@Jw705\u003c/a\u003e\u003c/td\u003e\n        \u003c/tr\u003e\n        \u003ctr align=left\u003e\n            \u003ctd width=\"150\"\u003e깊이있게 고민하고 기록하기\u003c/td\u003e\n            \u003ctd width=\"150\"\u003e괜한 걱정 하지 않고 차근차근 쌓아올리기\u003c/td\u003e\n            \u003ctd width=\"150\"\u003e두려워하지 않고 문제 해결하기\u003c/td\u003e\n            \u003ctd width=\"150\"\u003e모든 선택에 나만의 근거 만들기\u003c/td\u003e\n            \u003ctd width=\"150\"\u003e작성한 코드에 대한 의도를 잘 기록하기\u003c/td\u003e\n        \u003c/tr\u003e\n    \u003c/tbody\u003e\n\u003c/table\u003e\n\n\u003cbr/\u003e\n\n## 바로가기\n\n- [그라운드 룰](https://weak-sugar-603.notion.site/Ground-Rules-43ebfd44b76c482a983c4a47481028ca?pvs=4)\n- [branch/conmmit 컨벤션](https://weak-sugar-603.notion.site/Git-Branch-Commmit-882a35cba1cc433eb0f01abf2e3b134d?pvs=4)\n- [기획/디자인](https://www.figma.com/file/vd1TPvzMNwy6OfVmNFw8cI/Untitled?type=design\u0026node-id=4%3A22\u0026mode=design\u0026t=NS1IQkeFYsr7lSuf-1)\n- [위키](https://github.com/boostcampwm2023/web13_TEAM_528/wiki)\n- [노션](https://boarlog.notion.site/)\n- [백로그](https://www.notion.so/d1fb2080ff934e859d50c5cd3620e223)\n- [데모 링크](https://boarlog.netlify.app)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fboostcampwm2023%2Fweb13_boarlog","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fboostcampwm2023%2Fweb13_boarlog","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fboostcampwm2023%2Fweb13_boarlog/lists"}