- 학교 랭킹
- 오늘의 문제
- 알고리즘별/태그별 남은 문제 분류
- 함께 풀어요 게시판
- 이화여대 랭킹
프론트엔드 리액트 프로그램
- npm 설치 확인
npm -v
- 설치가 되지 않았다면 Node.js 공식 웹사이트로 이동하여 최신 LTS(Long-Term Support) 버전을 다운로드하여 설치
-
프로젝트 디렉토리로 이동 frontend\q_up-react
-
의존성 설치
npm install
- 프로젝트 실행
npm start
- 프로젝트 확인 http://localhost:3000/ 1920 X 1080 px 규격, 80% 로 봐야 예쁩니다. (반응형 미구현)
백엔드 스프링 프로그램
(이클립스)
이클립스 마켓플레이스(Help -> Eclipse Marketplace)에서 'Spring Tools 4'를 검색하여 설치
Project > Java Compiler > Annotation Processing > Enable annotation processing 체크
lombok 따로 설치해서 Project > Java Compiler > Annotation Processing > Factory Path에 External JARs로 추가
QqyuUpApplication 실행
(인텔리제이)
파일을 연 후 QqyuUpApplication 실행
기능 | HTTP | URL | Request | Response | 완성 여부 |
---|---|---|---|---|---|
관리자가 오늘의 문제 post | POST | /main/auth | { (String) “TodayPS 생성 성공“ } | ⭕️ | |
메인페이지 보여주기(오늘의 문제 + 그룹 순위) | GET | /main | { (INT) “ewha_ranking”: “이화여대 그룹 순위” (INT) “rival_ranking”: “이화여대 전 순위 등수” (String) “rival_group_name” : “이화여대 전 순위 그룹 이름” (INT) “solved_num_gap” : “전 순위 그룹과 문제 수 차이” (INT) “pid” : “오늘의 문제 번호” (String) “dib_handle” : “찜한 사람 핸들” (Boolean) “dib” : “찜하기 여부” (String) “p_title” : “오늘의 문제 제목” (INT) “p_tier” : “오늘의 문제 티어” } |
⭕️ | |
오늘의 문제 찜하기 | PUT | /main/todayps/dib/enable | { (INT)”pid”: “찜한 문제 번호” (String) “dib_handle”: “찜한 사람 핸들” } |
{ (INT)”problem_num”: “찜한 문제 번호” (String) “dib_handle”: “찜한 사람 핸들” (Boolean) “dib” : “찜하기 여부” (String) “problem_title” : “오늘의 문제 제목” (INT) “problem_tier” : “오늘의 문제 티어” } |
|
학생의 교내 랭크 보여주기 | GET | /studentRank | { (INT) “rank_ingroup” : “사용자의 교내 랭크” (String) “handle” : “사용자 핸들” (String) “userlink” : “사용자 솔브닥 링크” (String) “tier” : “사용자 티어” (INT) “solved_num” : “사용자 푼 문제 수” } |
⭕️ | |
문제 알고리즘별로 보여주기 | GET | /problems/algo{algoid} | { (String) “tag” : “사용자가 선택한 알고리즘 태그” } → url에 파라미터 형태로 제공(프엔) ex) /problems/algo?tag=알고리즘명 |
{ (INT) “pid” : “문제 번호” (String) “p_title” : “문제 제목” (String) “link” : “문제 링크” (INT) “solvednum” : “푼 사람 수” (String) “tier” : “문제 티어” } |
⭕️ |
문제 티어별로 보여주기 | GET | /problems/tier | { (String) “tier” : “사용자가 선택한 티어” } → url에 파라미터 형태로 제공 ex) /problems/tier?tier=티어번호 |
{ (INT) “pid” : “문제 번호” (String) “p_title” : “문제 제목” (String) “link” : “문제 링크” (INT) “solvednum” : “푼 사람 수” (String) “algo” : “문제 알고리즘” } |
⭕️ |
같이 풀어요 게시판 게시글 문제번호별로 보여주기(검색) | GET | /pstogether/search/{pid} | { (int) “pid” : “사용자가 검색한 문제 번호” } → url에 파라미터 형태로 제공 ex) /pstogether/search?pid=문제번호 |
{ (INT)”pid” : “문제 번호” (String) “article_title” : “게시글 제목” (String) “handle” : “게시자 핸들” } |
➿ |
같이 풀어요 게시판 게시글 미리보기 | GET | /pstogether/previews | { (INT)”pid” : “문제 번호” (String) “article_title” : “게시글 제목” (String) “handle” : “게시자 핸들” } |
⭕️ | |
같이 풀어요 게시글 상세 조회 | GET | /pstogether/search | { (INT) “articleId” : “게시글 아이디” } | { (INT)”pid” : “문제 번호” (String) “handle” : “게시자 핸들” (String) “github_link” : “깃허브 링크” } |
|
같이 풀어요 게시글 올리기 | POST | /pstogether | { (INT)”pid” : “문제 번호” (String) “handle” : “게시자 핸들” (String) “github_link” : “깃허브 링크” (INT) “pw” : “비밀번호” } |
{ ”게시글 등록에 성공했습니다” (INT)”pid” : “문제 번호” (String) “handle” : “게시자 핸들” (String) “github_link” : “깃허브 링크” (INT) “pw” : “비밀번호” } |
⭕️ |
같이 풀어요 게시글 삭제 | DELETE | /pstogether | { (INT) “articleId” : “게시글 아이디” (INT) “pw” : “비밀번호” } |
{ //비밀번호가 일치할 경우 ”게시글 삭제 성공” //비밀번호가 불일치할 경우 ”비밀번호 불일치” } |
DB 초기 세팅용 create.sql DB 정리용 dropdb.sql
+---------------------------------+
| Tables_in_db2024team01 |
+---------------------------------+
| db2024_algorithms |
| db2024_organizations |
| db2024_problems |
| db2024_pstogether |
| db2024_students |
| db2024_todayps |
| db2024_view_tag_data_structures |
| db2024_view_tag_dp |
| db2024_view_tag_geometry |
| db2024_view_tag_graphs |
| db2024_view_tag_greedy |
| db2024_view_tag_implementation |
| db2024_view_tag_math |
| db2024_view_tag_string |
+---------------------------------+
박세은 / 정희원 / 정은채 / 정소은 / 최이경