Giter Club home page Giter Club logo

assignment's Introduction

Assignment

아래 사항들을 만족하는 리소스 관리 시스템 API를 구현해주세요.

User Story

사용자는 리소스 관리 시스템을 통해 여러가지 리소스를 저장하고 연결해서 관리하고자 합니다.

  • 리소스 저장
    • Document 리소스
      • Google Workspace 에서 제공하는 Document, Presentation, Spreadsheet 를 저장합니다.
    • URL 리소스
      • Youtube, 블로그 등 Document 를 제외한 어떤 URL 이든 저장합니다.
  • 리소스 링크
    • URL 리소스(from)를 Document 리소스(to)로 연결할 수 있습니다.
  • 리소스 불러오기
    • 리소스 리스트를 불러올 수 있습니다.
    • 특정 타입(Document or URL) 의 리소스 리스트를 불러올 수 있습니다.
    • 개별 리소스를 불러올 수 있습니다.
    • 각 리소스는 자신과 연결된 리소스 정보를 포함합니다.

판단 기준

  • 기본기: 라이브러리 / 프레임워크를 얼마나 잘 사용하는가보다, ES6+ (혹은 TS) / SQL / OOP / FP / 테스트코드 / 도메인 설계 / 프로젝트 구조 설계 등에 대한 이해도가 얼마나 높은지가 중요합니다.

  • 지속적으로 확장 가능한 구조: 단순히 작동하는 코드가 아니라 3년 정도 프로젝트를 진행해가면서 지속적으로 확장 가능한 구조인지가 중요합니다.

  • 협업: 혼자 개발하기 쉬운 코드 보다 다른 사람들과 협업하기 좋은 코드인지가 중요합니다.

요구사항

  • api.yaml에 정의되어 있는 API를 구현해 주세요
  • 테이블은 필요에 따라서 자유롭게 만들어 주세요
  • name field에는 이모지가 포함될 수 있습니다.

리소스 저장

Document 리소스

  • 아래의 Content-Type 을 가지는 리소스들은 Document 리소스로 저장해주세요.
    • application/vnd.google-apps.document
    • application/vnd.google-apps.presentation
    • application/vnd.google-apps.spreadsheet
  • typedocument 로 저장해주세요.
  • metadata.doctype 은 Content-Type 에 따라 다음과 같이 저장해주세요.
    • application/vnd.google-apps.documentdoc
    • application/vnd.google-apps.presentationpresentation
    • application/vnd.google-apps.spreadsheetsheet
  • metadata.creator 은 랜덤 string 값으로 저장해주세요.

URL 리소스

  • Document 리소스가 아닌 모든 리소스는 URL 리소스로 저장해주세요.
  • typeurl 로 저장해주세요.
  • 호스트가 Youtube(https://www.youtube.com/watch?v=-{paramId})인 경우는 URI 를 https://youtu.be/embed/{paramId} 로 변경해서 저장해주세요.
  • scheme 가 없거나 http 인 URL은 https scheme 로 지정하여 저장해주세요.
  • encodeURI는 decode해서 저장해주세요.

링크

  • 링크는 URL 리소스에서 Document 리소스를 대상으로만 가능합니다.
    • from: URL 리소스
    • to: Document 리소스

기술 스택

  • 언어는 무관합니다.
  • 데이터베이스는 Relational Database 를 사용해주세요.
  • 테스트 코드를 작성해주세요.
  • 결과물은 docker 를 사용하여, 최대한 공유가 용이한 구조로 제작해주세요.
  • 프레임워크 및 라이브러리는 아래 용도를 제외하고는 사용을 자제해주세요.
    • 서버 관련 프레임워크
    • ORM or Database 관련 라이브러리
    • 테스트 코드 관련 라이브러리
    • Date 관련 라이브러리
    • Validation 관련 라이브러리

참고

assignment's People

Contributors

greatlaboratory avatar gring2 avatar keke0123 avatar nallwhy avatar

Watchers

 avatar

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.