# 1. 소개(Introduction) ## 목적(Purpose) 본 문서는 전북대학교 컴퓨터공학과의 Floor 팀에서 Scrap Yard라는 어플리케이션을 설계 및 구현하기 위한 소프트웨어 요구사항 명세서(SRS)이다. ## 범위(Scope) 본 프로젝트는 다음과 같은 항목을 범위로 한다. - ScrapYard 앱이 가지는 기능 - 기능: 웹페이지 링크 미리보기 - 기능: 로그인이 필요한 곳을 위한 캐시된 웹사이트 제공하는 브라우저 확장기능. - 기능: 문서 편집 - 기능: Latex 수식 편집 - 기능: 문서 링크 공유(파일 공유) - 기능: 드래그 앤 드롭 업로드 - 기능: 파일이 에디터 외부에서 편집되어도 업데이트 - 기능: 검색 - 기능: 문서 태그 - 기능: 단순 로그인/로그아웃 설정 - 기능: 관리창 - 기능: self-hosting을 위한 Docker image 제공 - 기능: gitbook 과 같은 문법으로 nav를 만들 수 있음. - 기능: 다국어 지원: Internationalization (i18n) - 기능: 테마(Light, Dark) - 기능: 서버에서의 문서 동시 편집. - 기능: STUN 서버를 통한 동시 편집. - 기능: 자동완성 - 기능: 문서 히스토리 버퍼 - 기능: git 사용시 git histroy 보여주고 diff 보여주기 - 기능: 클립보드 - 기능: 워드, 한글 뷰어 - 기능: 여러 파일 형식을 위한 플러그인 ## 용어 및 약어 정의(Definitions, acronyms and abbreviations) |용어 및 약어|정의| |---|----| |ScrapYard|현재 개발하는 앱의 명칭| |DnD|드래그 앤 드롭의 약자| ## 참고자료(References) 1. Knowledge base: https://en.wikipedia.org/wiki/Knowledge_base 2. Open Meta Graph: https://ogp.me/ ## 개요(Overview) 개요는 2장에서는 종합적인 요구사항을 서술하고, 3장에서는 기능 및 UI에 대해서 상세한 요구사항을 설명한다. ## 기능적 요구 ## 비기능적 요구 - Docker 배포 - .env 설정 - 첫 로드후 로딩 0.5s 이내 - 동시 편집 이용자 5명 이내 - 1000 RPS 정도 버티기 ## Detail ### Scrap #### Focus, Unfocus 사용자가 Scrap의 영역에 클릭을 했을때, Focus 된다. 다른 Scrap의 포커스는 사라진다. Scrap을 수정, 삭제하기위한 기능은 Focus를 해야 할 수 있다. Unfocus 되었을때 Scrap을 저장한다. #### 수정 단순 텍스트를 수정한다.