Code Monkey home page Code Monkey logo

classum's Introduction

Nest Logo

A progressive Node.js framework for building efficient and scalable server-side applications.

NPM Version Package License NPM Downloads CircleCI Coverage Discord Backers on Open Collective Sponsors on Open Collective Support us

Description

Nest framework TypeScript starter repository.

Installation

$ npm install

Running the app

# development
$ npm run start

# watch mode
$ npm run start:dev

# production mode
$ npm run start:prod

Test

# unit tests
$ npm run test

# e2e tests
$ npm run test:e2e

# test coverage
$ npm run test:cov

Support

Nest is an MIT-licensed open source project. It can grow thanks to the sponsors and support by the amazing backers. If you'd like to join them, please read more here.

Stay in touch

License

Nest is MIT licensed.

classum's People

Contributors

larrykwon avatar

Watchers

 avatar

classum's Issues

본격 Entity 설계

Entity를 설계하자

User

  • id
  • email
  • password
  • lastName
  • firstName
  • profilePicture
  • RefreshToken
  • UserSpace

UserSpace

  • id
  • user(FK)
  • Space(FK)
  • SpaceRole(Fk)

Space

  • id
  • name
  • logo(사진)
  • spaceRoles
  • UserSpace

SpaceRole

  • name
  • Role
  • Space

User -> UserSpace : 1:N
UserSpace -> User: N:1

Space -> UserSpace: 1:N
UserSpace -> Space: N:1

Space -> SpaceRole: 1:N

SpaceRole -> UserSpace: 1:N
UserSpace -> SpaceRole: N:1

Post

  • id
  • writer: User
  • postType: PostType
  • contents
  • attachment
  • isAnonymous
  • deletedAt
  • Space
  • chats

Chat

  • id
  • writer: User;
  • contents
  • isAnonymous
  • deletedAt
  • post
  • children
  • parent

비즈니스 로직 구현

###User

  • 다른 사용자의 프로필을 조회할 수 있습니다. 단, 다른 사용자의 이메일은 조회할 수 없습니다.
  • 본인은 조회할 때, 이메일 조회 가능
  • password 및 refresh token은 유출 x

Space

  • Create 시, 이름과 로고, 사용할 역할 리스트를 함께 설정 가능함
  • 개설할 경우, 개설자는 관리자가 된다.
    - delete는 관리자만 할 수 있다.
  • 개설된 공간은 관리자용 입장 코드와 참여자용 입장 코드를 가진다.
  • 입장 코드를 통해 공간에 참여할 수 있다.

SpaceRole

1. 모든 공간 구성원들은 단 하나의 역할만 가질 수 있고, 공간 참여 시 권한에 따라 역할을 결정할 수 있습니다.
2. 각 공간은 저마다의 역할 세트를 구성할 수 있습니다.
3. 각각의 역할은 관리자용 역할과 참여자용 역할이 구별되어 있습니다. ex) 교수 (관리자) | 조교 (관리자) | 학생 (참여자)
4. 관리자는 역할을 삭제할 수 있습니다.

Authorization

Space
- C,R: 누구나
- U,D: 관리자만

SpaceRole
- C,U,D: 관리자만

Post

1. 공간 내에서는 자유롭게 게시글을 등록할 수 있으며, 각 게시글에는 파일이나 이미지를 첨부할 수 있습니다.
2. 게시글의 종류에는 "공지"와 "질문" 두 가지가 있습니다.
3. 관리자는 "공지"와 “질문”을 모두 작성할 수 있고, 참여자는 "질문"만 작성할 수 있습니다.
4. “질문" 게시글은 익명 상태로 작성하는 것이 가능합니다.
4.1. 단, 익명 상태로 게시글을 작성할 수 있는 것은 “참여자"뿐입니다.
4.2. 관리자의 경우, “익명” 게시글의 글쓴이를 확인할 수 있습니다.
4.3. 따라서 참여자에게는 게시글 목록 데이터에서 글쓴이의 정보가 존재하지 않아야 합니다. (본인 제외)
5. 게시글은 "관리자" 또는 "작성자"만 삭제할 수 있습니다.

Chat

1. 모든 사용자는 자유롭게 게시글에 댓글을 작성할 수 있습니다.
2. 모든 사용자는 댓글에 답글을 달 수 있습니다.
3. 댓글은 "관리자" 또는 "작성자"만 삭제할 수 있습니다.
4. 댓글 또한 익명 상태로 작성하는 것이 가능합니다.
4.1. 익명 댓글에 대한 제약사항은 기본적으로 익명 게시글의 제약사항과 동일합니다.

Space

Space에 대해 Update API 작성하기

사진 파일 업로드 시스템

MulterOptions 구현

  • 이미지 파일 전용 jpg, jpeg, png
  • storage: uploadpath: /profile, filename: uuid + user.id + date
  • limits

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.