Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

프로젝트 사전정리 #1

Open
arkist opened this issue Sep 25, 2020 · 0 comments
Open

프로젝트 사전정리 #1

arkist opened this issue Sep 25, 2020 · 0 comments
Labels
documentation Improvements or additions to documentation

Comments

@arkist
Copy link

arkist commented Sep 25, 2020

본 프로젝트는 장소 기반의 채팅 서비스를 만들며
웹서비스를 구성하는 다양한 요소들을 활용해 볼 수 있도록 구성했습니다.

기본 컨셉

  • 사용자는 지도에서 장소를 선택해서 지역/장소별 채팅 채널에 입장할 수 있습니다.
  • 복수의 채팅방을 이용할 수 있으며, 지도 위에는 개별 채널의 새 메시지 알림을 보여주고, 활성화 정도를 히트맵으로 파악할 수 있습니다

  • 지역/장소에 대한 폴리곤을 지도 위에 표현해 줍니다

  • 채널 내에서는 기본적인 텍스트 외에 이미지나 링크, 별도의 미디어카드와 메타정보 등을 공유할 수 있습니다

기본 기술셋

  • 서버 런타임에 NodeJS@12 LTS를 사용합니다.
  • 클라이언트단은 데스크탑PC에서 IE를 제외한 최신 브라우저에서의 동작을 보장하도록 합니다.
  • ES Harmony 문법을 사용하고, 런타임은 Babel/Webpack 등으로 transpile 합니다. 선택적으로 TypeScript를 사용할 수 있습니다.
  • 뷰 레이어에는 React를 사용합니다. create-react-app 등 보일러플레이트의 이용을 추천합니다.
  • 소켓 통신에는 기본적으로 socket.io를 사용할 수 있지만, 어떤 것을 사용해도 무방합니다.
  • 지도/지역검색 API는 네이버 오픈API를 이용합니다.

필수 기능

  • 세션 기반의 로그인(인증) 시스템
  • Slack/Discord 같은 채널(채팅방) 기반의 채팅시스템
    • 복수의 공개된 채널중에 선택해서 대화를 나눌 수 있습니다
    • 채널은 장소 기반 으로 제한적 갯수로 제공합니다
      • ex) 서강대학교 메리홀, 서강대학교 리치과학관
      • ex) 염리동, 대흥동, 신수동
    • 채널목록(장소)은 지도 위에 폴리곤으로 표현되어야 합니다
    • 채널목록에서는 채널별 업데이트 정보를 확인 할 수 있어야 합니다. 새글알림이나 카운트 등
    • 채널의 활성화정도(메시지나 참여자 수)에 따라 지도에 히트맵을 그려줍니다

추가로 고려해 볼만한 기능

  • Naver/GitHub/Facebook 등 소셜서비스 로그인을 연동합니다
  • 유저가 채널을 직접 생성하고 관리할 수 있도록 합니다
  • 접속유저의 목록을 노출해줍니다
  • 채널내에서 기본 텍스트 외의 정보들을 다룰 수 있도록 합니다
    • 개별 메시지에 리액션 달기
    • 외부 url의 OpenGraph나 이미지 처리
    • Markdown
    • 네이버 검색 정보 등
  • 그외 자유롭게 아이디어를 내서 구현해 볼 것 😄
@arkist arkist added the documentation Improvements or additions to documentation label Sep 25, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
documentation Improvements or additions to documentation
Projects
None yet
Development

No branches or pull requests

1 participant