노마드 코더 커뮤니티를 기반으로 유저 인증, 게시물 등을 클론한 웹사이트 입니다.
웹사이트 구경하기 ->
https://nomad-coders-community-clone.netlify.app
Report Bug
·
Request Feature
Table of Contents
Frontend
- Conding Convention
-
Event Handler 네이밍: ~handler
const exampleHandler = (): void => {};
-
Handler Function Prop 네이밍: on~
return <ExampleComponent onSubmit={exampleHandler} />;
-
Interface 네이밍: Pascal Case + ~Props
interface ExampleProps { name: string; }
-
styled-components 구조: 최상위 태그에만 한 번
const StyledTag = styled.div``; return ( <StyledTag> <div>Not</div> <div>There</div> </StyledTag> );
-
타입 관리
- 전역적으로 재사용될 타입:
src/@types/index.d.ts
에서declare
하여 정리(import, export 필요 없음) - 단 하나의 컴포넌트에만 쓰이는 타입은 해당 파일 내부에 선언해도 무관
- 타입 선언 방식: interface(대부분의 타입) + type alias(원시 타입)
-
파일(폴더) 네이밍 : Pascal Case(components, pages 제외)
ExampleFileName;
-
컴포넌트 폴더 구조 관리
/SomeComponent │ index.js │ SomeComponent.tsx ├── /SomeChildrenComponent │ ├── index.js │ └── SomeChildrenComponent.tsx /SomeComponent2 │ index.js │ SomeComponent2.tsx
index.tsx
를 자주 사용하게 되면 파일 이름으로 검색해 작업에 용이하지 못하므로컴포넌트이름.tsx
사용을 지향하고index.js
로import
를 쉽게 할 수 있게한다.
feat: 새로운 기능에 대한 커밋
fix: 버그 수정에 대한 커밋
build: 빌드 관련 파일 수정에 대한 커밋
etc: 그 외 자잘한 수정에 대한 커밋
docs: README.md 수정에 대한 커밋
style: 코드 스타일 혹은 포맷 등에 관한 커밋(prettier 등)
refactor: 코드 리팩토링에 대한 커밋
반응형 레이아웃을 기반으로 하였습니다.
- 회원가입(일반/github)
- 로그인(일반/github)
- 다시 접근해도 자동 로그인
- 로그아웃
- 카테고리 정렬
- 인기순/최신순 정렬
- pinned된 게시물은 최상단 정렬
- 10페이지로 pagination
- 게시글 좋아요(transaction)
- 검색 결과를 포함하는 제목을 가진 게시글 필터링
- 10페이지로 pagination
- 제목, 카테고리
- 에디터를 사용하여 게시글 작성
- 개발자는 pinned 여부를 선택
- (본인이 작성한 글이라면) 삭제/수정
- 댓글/대댓글
- 게시글 좋아요(transaction)
- 닉네임 수정
- avatar 수정
- 계정 삭제
Distributed under the MIT License.
김영인 - [email protected]
신지호 - [email protected]
Project Link: https://github.com/kimyoungyin/Nomadcoder-study-community