seho27060 / ALDY

공룡 알디와 함께하는 알고리즘 스터디 전용 사이트

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

[TOC]

✏ALDY

readme_main

👪 프로젝트 팀원 소개

문서희 박세은 이동주 알디 박세호 조성민 홍석호
문서희 박세은 이동주 알디 박세호 조성민 홍석호
Frontend Frontend Frontend Mascot Backend Backend Backend

💡웹 서비스 소개

공룡 "알디"와 함께하는 알고리즘 스터디

  • 웹 서비스 ALDY는 코드리뷰 중심 알고리즘 스터디 플랫폼 입니다!

  • 문제풀이 사이트 백준(baekjoon)과 연동 가능해요!

  • 마음이 맞는 사람들과 스터디를 생성할 수 있어요!

  • 1대1 코드리뷰를 통해 도움을 주고 받을 수 있어요!

  • 시스템의 주기적인 확인을 통해 자동으로 스터디가 관리돼요!

  • 스터디원들의 활동내역에 따라 스터디의 활성화 정도를 확인 가능해요!


💖 ALDY만의 특별한 기능

1. solved.ac와의 연동으로 백준 사이트 활용
  • 연동을 통해 [백준 사이트]의 문제를 토대로 스터디 문제 선정, 문제 추천이 가능합니다.
2. 스터디 별 문제추천
  • 스터디원들이 풀지 않은 문제 중 원하는 조건에 따라 문제을 추천할 수 있습니다.
3.캘린더 활용 문제 선정
  • 원하는 날짜에 문제를 선정하여 스터디원과 공유할 수 있습니다.

  • 선정된 문제는 캘린더에 기록되어 간편하게 이용 가능합니다.

4.스터디원 간 코드리뷰 요청
  • 선정된 문제를 풀고, 자신의 코드를 서비스에 등록할 수 있어요!

  • 등록된 코드를 토대로 스터디원에게 코드리뷰를 요청할 수 있습니다.

  • 서비스의 코드 에디터를 통해 python, java 등 다양한 프로그래밍 언어를 IDE처럼 활용 가능합니다.

5.주기화를 통한 강퇴 자동화 및 활성화 정도 체크
  • 선정된 문제에 자신의 코드를 등록하지 않거나, 코드리뷰에 응답하지 않는 스터디원에게 패널티를 부여합니다.
  • 패널티 개수에 따라 스터디장이 임의로 강퇴하거나, 패널티가 3개 이상인 경우 당일이 지나면 자동 강퇴됩니다.

🛠️기술 스택

1. 기술 스택

Front-End

react.png
React Recoil JavaScript

Back-End

Springboot Springbatch

Data

redis.png
redis mariaDB

Infra

docker jenkins

IDE

intellij VScode

Tool

figma
Mattermost gitlab Notion figma jira

2. ⚙상세 버전

OS Windows 10
Front-End HTML5
CSS3
JS(ES6)
React 5.0.8
Recoil
Node js 16.16.0
NPM 8.11.0
Back-End Java 11
Spring Boot 2.7.3
Spring Data JPA
Spring Security
Spring Batch
Gradle
Depolyment Docker
Jenkins
Nginx
IDE IntelliJ 2022.1.3
Visual Studio Code
Database MySQL 8.0.29
Redis cache
Server AWS EC2 (Ubuntu 20.04 LTS)
Tool Figma
MySQL Workbench
MobaXterm v22.1
Postman
Swagger

3.🧬애플리케이션 구성도

구성도
아키텍쳐.png

✨서비스 화면 및 주요기능

1. 로그인

로그인 페이지
로그인
  • 서비스 로그인

  • 백준의 계정을 통해 서비스에 가입할 수 있습니다.

2. 회원가입

인증 코드 발급 및 연동 확인
회원가입_백준연동
  • solved.ac 의 api를 활용하여 백준과 연동합니다.

  • 연동과정

    1. 백준 아이디에 대한 인증코드 발급

    2. solved.ac의 자기소개에 빈칸으로 구분하여 인증코드를 추가합니다.

    3. 서비스에서의 연동시, 자기소개에 입력된 인증코드를 확인하고 연동을 확인합니다.

가입 정보 입력
회원가입_정보입력
  • 비밀번호 입력

  • 이메일 입력 및 중복확인

  • 닉네임 입력 및 중복확인

3. 메인페이지

메인페이지
메인_소개.gif
  • 왼쪽 하단의 메뉴 바를 통해 서비스에 대한 간단한 소개를 확인할 수 있습니다.
  • 상단의 네이게이션 바를 통해 스터디, 코드리뷰,마이페이지 로 이동가능합니다.

4. 스터디 페이지

스터디 페이지
스터디_스터디상세.gif
  • 서비스에 등록된 스터디 리스트
    • 각 스터디 클릭시 스터디 레벨, 스터디 소개를 확인 가능합니다.
    • 스터디 이름 클릭시 해당 스터디 상세 페이지로 이동합니다.
내 스터디 목록
스터디_내스터디상세.gif
  • 로그인 유저가 속한 스터디 리스트

    • 각 스터디 클릭시 스터디 레벨, 스터디 소개를 확인 가능합니다.

    • 스터디 이름 클릭시 해당 스터디 상세 페이지로 이동합니다.

  • 스터디 활성화 정도

    • 마스코트 이미지를 통해 해당 스터디의 활성화 정도 출력

    • 일주일마다 이전 주의 활동 기록에 따라 상태 변화

  • 스터디 설명

    • 해당 스터디의 상세 설명 출력
  • 내게 요청 온 목록

    • 코드리뷰 페이지로 이동

5. 스터디 생성 페이지

스터디 생성 페이지
스터디_스터디생성.gif
  • 스터디 이름, 제한 인원, 공개 범위, 가입 요건, 설명 입력 후 스터디 생성

6. 스터디 상세 페이지

오늘의 문제 풀어보기
스터디_오늘의문제.gif
  • 현재 날짜에 선정된 문제 확인
스터디원 살펴보기
스터디_스터디원사펴보기.gif
  • 스터디에 속한 스터디원 리스트 출력

  • 스터디원 클릭시 해당 스터디원의 백준 티어, 아이디, 함께 스터디에서 푼 문제 수 확인 가능

  • 각 스터디원은 패널티 개수에 따라 다른 색으로 표현됩니다.

스터디 캘린더 & 통계
스터디_캘린더_통계.gif
  • 스터디 캘린더

    • 스터디장이 원하는 날짜에 문제 선정가능

    • 캘린더의 날짜 클릭시 해당 날짜의 선정 문제 정보 출력

      • 문제 클릭시 스터디원들의 코드리뷰 단계 확인 가능

      • 문제 별 코드리뷰 등록

  • 스터디 통계

    • 이제까지 스터디에서 풀이한 문제들을 알고리즘 분류, 난이도에 따른 시각화

7. 문제 선정 페이지

문제 선정 페이지
문제선정.gif
  • 알고리즘 분류, 난이도를 선택하여 검색 기준 추가

  • 안푼 사람 선택시, 선택된 유저들이 풀지 않은 문제들로 검색 기준 추가

8. 코드리뷰 페이지

코드리뷰 페이지
코드리뷰_메인
  • 내개 온 요청 목록, 리뷰 받은 코드, 내가 보낸 요청, 최종 제출 코드 탭 클릭시 관련 정보출력
내게 온 요청 목록 & 코드 리뷰 응답
코드리뷰_코드리뷰응답
  • 스터디 이름, 요청한 사람, 문제 번호, 문제 이름, 요청 날짜, 진행 상황 출력

  • 코드리뷰 요청을 확인하고 이에 대한 응답

9. 코드리뷰 등록 페이지

코드리뷰 1단계
코드리뷰_1단계
  • 코드리뷰 1단계 : 문제를 풀이한 코드의 초안 등록
코드리뷰 2단계 및 요청
코드리뷰_2단계_요청
  • 코드리뷰 2단계 : 1단계에 등록된 코드에 주석을 추가하여 코드리뷰를 요청할 코드로 수정하여 등록

  • 코드리뷰 요청 : 코드리뷰를 요청할 스터디원을 선택

코드리뷰 3단계 & 최종 코드 확인
코드리뷰_3단계_최종코드확인
  • 코드리뷰 3단계 : 요청에 응답된 코드리뷰를 참고하여 최종 코드를 수정하여 제출

  • 리뷰 받은 코드

    • 스터디 이름, 리뷰한 사람, 문제 번호, 문제 이름, 날짜, 진행 상황 출력

    • 유저가 보낸 코드리뷰 요청에 대한 응답 여부 확인 가능

    • 응답이 온 코드리뷰의 코드리뷰 3단계 클릭시 유저의 등록 코드와 응답 코드를 비교하여 코드 수정 후 코드리뷰 3단계 제출.

  • 최종 코드 확인

10. 프로필 페이지

프로필 페이지
프로필_메인.png
  • 로그인 유저의 정보, 리뷰 코드 수, 리뷰 받은 코드 수 확인

  • 백준 사이트의 티어 변동시 티어 갱신을 통해 유저의 티어 정보 갱신

오늘의 문제 추천
프로필_오늘의문제추천.gif
  • 로그인 유저가 최근 푼 20개 문제의 유형에 따라 아직 풀이하지 못한 문제를 추천
내가 가입한 스터디 목록
프로필_내가가입한스터디.gif
  • 로그인 유저가 가입한 스터디 목록 출력

  • 스터디 이름 클릭시 해당 스터디의 상세 페이지로 이동합니다.

11. 메일 알림

  • 코드리뷰 요청, 코드리뷰 응답, 스터디 패널티(강퇴) 발생시 관련 내용이 해당 유저의 이메일로 메일 전송.

👯‍♀️협업 관리

notionman.png

✏️[ GitLab ]

gitlabmain.png

jiramin.png


📋프로젝트 관련 문서

1. ERD

ERD
erd.png

2. 와이어프레임(Figma)

와이어프레임(Figma)
와이어프레임.png

3. Wiki

개발일지 (wiki)
wiki.png

4. 포팅매뉴얼

포팅매뉴얼
포팅매뉴얼.pdf

5. 시연 시나리오

시연 시나리오
시연시나리오.pdf

6. 발표자료

발표자료
발표자료_ALDY.pdf

About

공룡 알디와 함께하는 알고리즘 스터디 전용 사이트


Languages

Language:Java 44.5%Language:JavaScript 42.2%Language:CSS 12.4%Language:Shell 0.5%Language:HTML 0.4%Language:Dockerfile 0.1%