Hacktoberfest 2026: le issue che i maintainer hanno segnato per ottobre, aperte e adatte ai principianti. Sfoglia le issue Hacktoberfest

[✍️ Dev Log] 정송이 / 2021-05-17

Aperta
#78 1 commento 0 reazioni 1 assegnatario Vedi su GitHub

@lovelysi0113 ci sta già lavorando.

Dal 17/5/2021.

  • #67 di @lovelysi0113 — integrata
  • #76 di @lovelysi0113 — integrata
  • #77 di @lovelysi0113 — integrata
  • #79 di @lovelysi0113 — integrata

Valutazione

Questa issue non è ancora stata valutata.

Descrizione

@lovelysi0113/기록은 성장의 밑거름 ❄️ Dev Log
오늘은 어떻게 프로젝트에 기여했나요?
  • #62 게시글 리스트에서 검색하는 로직 구현
    • post /filterRecruitList/:order/:sort: stack으로 게시글 검색
    • controller 생성 - filterRecruitList
    • req.body, req.params로 어떤 데이터를 받을 것인지 고민 및 결정
    • req.body: searchStacksList - 검색할 때 포함할 stack들의 집합(베열)
    • req.params:
      • order- 검색 결과 갯수(infinite scroll을 위해 검색결과를 잘라서 보내줌)
      • sort- 검색 순서(최신순, 오래된순) (이후 #23 에도 해당 parameter 추가)
    • res.data에 isEnd값 추가 - 게시글 데이터가 더 존재하는지에 대한 여부(true, false)
  • #19 middleware-authChecker 위치 변경
  • 지금까지 구현한 로직에서 발생한 여러가지 에러 수정
    • 필드명 고치기(업데이트된 필드명을 적용시키지 못한 부분 수정) #27
    • 로직을 작성하는 과정에서 남아있는 주석, 예전 코드 정리
  • #69 #71 #72 project+workspace에서 사용할 테이블들의 entity 생성
    • Tasks 테이블: 칸반보드에 들어가는 일정 관리 카드(task)를 관리하는 테이블
    • Checklists 테이블: task에 들어가는 체크리스트 데이터를 관리하는 테이블
    • Task_comments 테이블: task에서 작성할 수 있는 댓글들을 관리하는 테이블
  • #64 project 기능 관련 router, controller 생성
    • route: projectRouter
    • controllers: showProjectList, createProject, editProject, inviteMembers
  • chat 기능 구현을 위한 socket.io 공부 + 어떻게 구현할 것인지 고민 및 회의
오늘의 프로젝트에서 힘든 점은 무엇인가요?
  • 검색 기능을 구현할 때 find() 함수에서 where을 사용하여 원하는 stack만 바로 filter될 수 있도록 작성하고 싶었는데 실제로 테스트한 결과, where 부분이 적용되지 않거나 자꾸 에러가 발생했다.
    const allBoards = await getRepository(Recruits).find({
        relations: ['writer', 'stacks'],
        where: {
            stacks: {
                name: searchStacksList,
            },
        },
        order: {
            createdAt: sort,
        },
    });
    
    스크린샷 2021-05-17 오후 11 05 43
    방법을 찾기위해 검색하며 여러가지 글을 읽어본 결과, 처음에 entity를 작성할 때 뭔가 어설프게 만들었고 그 부분에서 join + where이 적용되지 않는다는 결론이 나왔다. 이를 올바르게 동작시키려면 entity부터 다시 작성해야할 것 같다는 생각이 들었다.
    아직 앞으로 구현해야 할 기능들이 많기 때문에 우선 전체 게시글 데이터를 불러온 다음 하나씩 원하는 stack을 모두 가지고 있는지에 대해 검사하는 방법으로 검색 기능을 작성하였다. 다행히 검색 기능이 원하는대로 작동되긴 하는데 지금 코드보다 더 효율적인 방법이 있을 것 같다는 생각이 들었다. 나중에라도 계획한 기능들을 모두 구현 완료한 후에 시간이 남으면 천천히 여기 부분을 분석+수정&보완하는 방향으로 가고싶다.
    let filterResult = [];
    for (let idx = 0; idx < allBoards.length; idx++) {
        let requireStack = allBoards[idx].stacks.map(el => el.name);
        let isRight = true;
        for (let chk = 0; chk < searchStacksList.length; chk++) {
            if (!requireStack.includes(searchStacksList[chk])) {
                isRight = false;
                break;
            }
        }
        if (isRight) {
            const obj = { ...allBoards[idx], requireStack };
            filterResult.push(obj);
        }
    }
    
내일은 프로젝트에 기여하기 위해 무엇을 해야 하나요?
  • profile, recruit 기능 테스트 + 에러 수정하기
  • API 문서 보완하기! 내일은 꼭 완료하자!
  • 오늘 작성한 entity를 토대로 스키마 디자인 보완하기
  • socket.io 공부하기
  • project 기능 구현하기
    • 프로젝트 리스트 조회
    • 프로젝트 생성
    • 프로젝트 수정
    • 프로젝트 팀원 초대(nodemailer)
  • workspace 구현 방법 회의하기
Lingua principale
TypeScript
Stelle
9
Fork
3
Metriche di merge delle PR
Nessuna PR unita negli ultimi 30g

Preparare l'ambiente

Questo progetto non fornisce container di sviluppo, Dockerfile né guida per i contributori, quindi l'ambiente è a tuo carico: parti dal suo README e consulta la nostra guida al primo contributo per i passaggi generali.

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di codestates/Reciper-server

Tutte le issue di codestates/Reciper-server

Issue simili

Altre issue su TypeScript

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.