Skip to content

kimyoungyin/Nomadcoder-study-community

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation


Logo

NomadCoders Community Clone

노마드 코더 커뮤니티를 기반으로 유저 인증, 게시물 등을 클론한 웹사이트 입니다.

웹사이트 구경하기 -> https://nomad-coders-community-clone.netlify.app

Report Bug · Request Feature

Table of Contents
  1. Getting Started
  2. Usage
  3. License
  4. Contact

기술 스택

Frontend

(back to top)

Getting Started

convention

  • Conding Convention
  1. Event Handler 네이밍: ~handler

    const exampleHandler = (): void => {};
  2. Handler Function Prop 네이밍: on~

    return <ExampleComponent onSubmit={exampleHandler} />;
  3. Interface 네이밍: Pascal Case + ~Props

    interface ExampleProps {
        name: string;
    }
  4. styled-components 구조: 최상위 태그에만 한 번

    const StyledTag = styled.div``;
    
    return (
        <StyledTag>
            <div>Not</div>
            <div>There</div>
        </StyledTag>
    );
  5. 타입 관리

  • 전역적으로 재사용될 타입: src/@types/index.d.ts에서 declare하여 정리(import, export 필요 없음)
  • 단 하나의 컴포넌트에만 쓰이는 타입은 해당 파일 내부에 선언해도 무관
  • 타입 선언 방식: interface(대부분의 타입) + type alias(원시 타입)
  1. 파일(폴더) 네이밍 : Pascal Case(components, pages 제외)

    ExampleFileName;
  2. 컴포넌트 폴더 구조 관리

    /SomeComponent
    │ index.js
    │ SomeComponent.tsx
    ├── /SomeChildrenComponent
    │ ├── index.js
    │ └── SomeChildrenComponent.tsx
    /SomeComponent2
    │ index.js
    │ SomeComponent2.tsx

    index.tsx를 자주 사용하게 되면 파일 이름으로 검색해 작업에 용이하지 못하므로 컴포넌트이름.tsx 사용을 지향하고 index.jsimport를 쉽게 할 수 있게한다.

Commit Convention

feat: 새로운 기능에 대한 커밋
fix: 버그 수정에 대한 커밋
build: 빌드 관련 파일 수정에 대한 커밋
etc: 그 외 자잘한 수정에 대한 커밋
docs: README.md 수정에 대한 커밋
style: 코드 스타일 혹은 포맷 등에 관한 커밋(prettier 등)
refactor: 코드 리팩토링에 대한 커밋

Usage

반응형 레이아웃을 기반으로 하였습니다.

1. Authentication

  • 회원가입(일반/github)

스크린샷 2022-07-19 오전 1 55 26

  • 로그인(일반/github)

스크린샷 2022-07-19 오전 1 55 10

  • 다시 접근해도 자동 로그인
  • 로그아웃

스크린샷 2022-07-19 오전 1 56 24

2. Home

스크린샷 2022-07-19 오전 1 53 58

  • 카테고리 정렬
  • 인기순/최신순 정렬
  • pinned된 게시물은 최상단 정렬
  • 10페이지로 pagination

스크린샷 2022-07-19 오전 1 58 30

  • 게시글 좋아요(transaction)

3. Search

스크린샷 2022-07-19 오전 2 00 13

  • 검색 결과를 포함하는 제목을 가진 게시글 필터링
  • 10페이지로 pagination

4. Upload

스크린샷 2022-07-19 오전 2 01 28

  • 제목, 카테고리
  • 에디터를 사용하여 게시글 작성
  • 개발자는 pinned 여부를 선택

5. Thread

스크린샷 2022-07-19 오전 2 02 44

  • (본인이 작성한 글이라면) 삭제/수정

스크린샷 2022-07-19 오전 2 04 31

  • 댓글/대댓글

스크린샷 2022-07-19 오전 2 02 59

  • 게시글 좋아요(transaction)

6. profile 수정

스크린샷 2022-07-19 오전 2 04 56

  • 닉네임 수정
  • avatar 수정
  • 계정 삭제

(back to top)

License

Distributed under the MIT License.

(back to top)

Contact

김영인 - [email protected]

신지호 - [email protected]

Project Link: https://github.com/kimyoungyin/Nomadcoder-study-community

(back to top)

About

NomadCoder 커뮤니티 사이트 기반 클론

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published