S-STT는 음성파일의 요약본과 원본을 텍스트로 변환해주는 웹페이지입니다.
현재 AWS 서버 요금 문제로 인해 서버는 닫혀있는 상황입니다.
프로젝트 실행 결과는 아래 유투브 링크에서 확인해주세요
cmd 창을 열어 해당 명령어들을 순차적으로 입력합니다.
git clone https://github.com/WebProject-STT/Front-end.git
cd Front-end
npm install
또는
yarn add
npm start
또는
yarn start
- React
- HTML
- CSS(Sass)
- Javascript
- React 17.0.1
- npm 6.14.9
- node 14.15.3
- yarn 1.22.5
➡️ https://www.notion.so/STT-ea054dc6cd0a431fa4d43ba60c50b889
➡️ https://www.youtube.com/watch?v=7ngRGio0SCM&t=32s
- 사용자의 로그인 정보가 없다면 메인 페이지를 보여줌. ✅
- 메인 페이지에는 해당 서비스에 대한 간략한 설명이 나와있도록 한다. ✅
- 사용자로부터 아이디와 비밀번호를 입력받는다. ✅
- 아이디는 20자까지만 입력받는다. ✅
- 아이디나 비밀번호를 입력하지 않았을 경우 해당 입력창 밑에 경고문구를 띄운다. ✅
- 입력한 아이디와 비밀번호가 회원 DB에 등록되어 있는지 확인한다. ✅
- 등록되어 있지 않다면 비밀번호 입력창 밑에 경고문구를 띄워 입력값을 확인하게 한다. ✅
- 등록되어 있다면 메인 페이지로 이동하며 로컬 스토리지에 저장한다. ✅
- 비밀번호는 암호화 과정을 거쳐야 한다(사용자에게 비밀번호가 보여지면 안됨). ✅
- 로컬스토리지에 저장된 값을 없애고 메인페이지로 이동하도록 한다. ✅
- 회원가입 버튼은 처음에는 비활성화되어있다. ✅
- 아이디, 비밀번호, 이메일을 입력받는다. ✅
- 아이디, 비밀번호, 이메일을 입력하지 않았을 경우 해당 입력창 밑에 경고문구를 띄운다. ✅
- 아이디는 알파벳과 숫자로만 이루어지며 길이는 5~20자이다. ✅
- 이에 대한 안내문구를 아이디 입력창 밑에 띄운다. ✅
- 입력조건에 어긋날 시 안내문구를 바꿔서 보여준다. ✅
- 비밀번호는 8글자를 넘어가는지 확인한다. ✅
- 넘어가지 않는다면 안내문구를 입력창 밑에 띄우고 마저 입력하게 한다. ✅
- 이메일의 입력값이 '아이디@주소'형태인지 확인한다. ✅
- 위의 모든 조건들이 맞을 시 회원가입 버튼을 활성화 시킨다. ✅
- 회원가입 버튼 클릭시 입력값들을 서버에 전달한다. ✅
- 입력한 아이디가 이미 존재한다면 alert창을 띄운다. ✅
- 회원가입에 성공하면 alert창을 띄운 후에 로그인 페이지로 이동한다. ✅
- 로그인 정보가 있을 경우 게시판 페이지를 보여준다. ✅
- 왼쪽에 메뉴바를 만들어 주제들을 정렬(오름차순)시킨다. ✅
- 첫번째 주제는 '전체'로 모든 게시글을 확인할 수 있도록 한다. ✅
- 처음 게시판 목록 페이지가 렌더링되면 전체 게시글 목록이 오른쪽에 보여지도록 한다. ✅
- 주제를 클릭하면 해당 주제에 맞는 게시글 목록을 볼 수 있도록 한다. ✅
- 한 페이지당 최대 게시글의 개수는 10개이다. ✅
- 해당 주제에 관한 전체 게시글의 개수가 최대 게시글의 개수를 넘을 경우에는 아래쪽에 페이지 버튼을 클릭하여 다른 페이지로 이동할 수 있다. ✅
- 게시글의 제목을 클릭하면 해당 게시글의 상세 페이지로 이동한다. ✅
- 작성된 게시글이 없을 경우에는 '작성된 게시글이 없습니다.' 문구 출력하기 ✅
- 작성 버튼 클릭 시 게시글 작성 페이지로 이동하기 ✅
- 특정 게시글을 삭제할 수 있도록 한다. ✅
- 삭제버튼 클릭시 체크박스를 생성시킨다. ✅
- 게시글을 선택(체크박스로 구현)한 후에 삭제버튼을 클릭하면 confirm창을 띄운다. ✅
- 게시글 전체 선택도 가능 ✅
- 사용자가 게시글을 아무것도 선택하지 않았다면 게시글을 선택하라고 alert창을 띄움 ✅
- 확인버튼이 클릭되면 삭제할 게시글들의 정보를 서버에 전달한다.✅
- 게시글의 제목을 검색할 수 있다. ✅
- 제목의 길이는 20자 이하로 제한한다. ✅
- 제목의 글자수를 실시간으로 업데이트한다. ✅
- 게시글의 주제를 입력받는다(select 태그 이용). ✅
- 녹음파일을 업로드한다. ✅
- 파일을 선택하면 파일명이 표시되도록 한다. ✅
- 파일명이 너무 길 경우에는 뒷부분을 생략한다. ✅
- 상세설명의 길이는 100자 이하로 제한한다. ✅
- 현재 글자수를 실시간으로 업데이트하여 상세설명 입력창안에 출력한다. ✅
- 100자를 넘을 시 더이상 입력되지 않도록 한다. ✅
- 등록 버튼을 누르면 입력 정보들을 서버에 전달하고 해당 게시글 상세 페이지로 이동한다. ✅
- 제목이나 파일을 입력(선택)하지 않았을 시 alert창을 띄우고 입력(선택)하게 한다. ✅
- 취소 버튼을 누르면 confirm창을 띄워 한번 더 확인하게 한다. ✅
- 사용자가 confirm창의 확인버튼을 누른다면 이전 페이지로 이동하게 한다. ✅
- 해당 게시글의 제목, 상세설명, 키워드, 주제별 상세내용, 원본을 화면에 출력한다. ✅
- 수정버튼을 클릭 시 게시글 수정 페이지로 이동한다. ✅
- 삭제버튼 클릭 시 confirm창을 띄운다. ✅
- 확인을 눌렀을 경우 게시글의 정보를 서버에 전달한다. ✅
- 이후에 게시글 목록 페이지로 이동한다. ✅
- 취소를 눌렀을 경우 confirm창을 없앤다. ✅
- 파일변경 버튼 클릭 시 파일선택창을 띄운다. ✅
- 파일 선택 후 서버에 변경 파일 정보를 보낸다. ✅
- 취소버튼 클릭 시 선택창을 없앤다. ✅
- 파일이 변경되면 페이지를 리렌더링해 변경된 결과를 확인할 수 있도록 한다. ✅
- 본문 영역 밑에는 같은 주제의 게시글 목록을 보여준다. ✅
- 한페이지에 4개까지만 표시한다. ✅
- 게시글 클릭 시 해당 게시글의 상세페이지로 이동한다. ✅
- 처음 페이지가 렌더링 될때 각 입력창에는 게시글의 내용이 담겨져 있어야 한다. ✅
- 게시글의 원본을 제외한 모든 항목을 수정할 수 있도록 한다. ✅
- 키워드는 '#키워드명' 형태로 입력해야 한다. (30개까지 설정가능)
- 입력창에서 spacebar를 입력했을 경우 '#'을 자동 생성한다. ✅
- 입력창에 focus가 들어올 경우 '#'를 자동 생성한다. ✅
- 입력된 키워드가 이미 존재할 경우 ' #'가 입력됨 ✅
- 입력된 키워드가 없다면 '#'만 입력 ✅
- 중복된 키워드를 입력할 시 alert창을 띄운다. ✅
- 키워드가 30개를 넘을 시 alert창을 띄운다. ✅
- 수정 버튼을 클릭 시 변경 내용을 서버에 전달하고 상세보기 페이지로 이동한다. ✅
- 취소 버튼을 클릭 시 상세보기 페이지로 바로 이동한다. ✅