SOPT-27-SpaceCloud / spaceCloud-server

ON SOPT 합동세미나 27기 SERVER TEAM

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

대학생 연합 IT벤처 창업 동아리 SOPT

🧑🏻‍💻 SOPT 클라이언트 합동 세미나

공간 예약 서비스 스페이스클라우드 서버 구현


💁🏻 소개

이 레포지토리는 ON-SOPT 27기 서버파트와 클라이언트 파트가 협업하는 합동세미나 내용을 정리하고자 만들어졌습니다.

  • 일정 : 2020년 12월 05일(토)
  • 스페이스클라우드 API 구현 및 DB 설계

📕 API Docs


🔧 Credit

  • Language : JavaScript
  • Library & Framework : Node.js
  • Database : AWS RDS
  • ORM : Sequelize
  • Deploy : AWS EC2

💼 Database Modeling

  • ERD(Entity Relation Diagram)

스페이스클라우드 ERD

💻 Develop

$ git clone https://github.com/SOPT-27-SpaceCloud/spaceCloud-server.git
$ cd [project-name]
$ npm install
$ npm start

(단, 암호 키와 같이 보안이 필요한 파일에 대해서는 Github에 업로드 되어 있지 않습니다.)

🗂 models/index.js

/* Post */
db.Post = require('./post')(sequelize, Sequelize);
db.PostDetail = require('./postDetail')(sequelize, Sequelize);
db.Facilities = require('./facilities')(sequelize, Sequelize);
db.PostDetailSelect = require('./postDetailSelect')(sequelize, Sequelize);
db.Hashtag = require('./hashtag')(sequelize, Sequelize);
db.PostDetailImage = require('./postDetailImage')(sequelize, Sequelize);
db.PostHashtag = require('./postHashtag')(sequelize, Sequelize);

/* Banner */
db.Banner = require('./banner')(sequelize, Sequelize);

/** 1 : 1   Post : PostDetail */
db.Post.hasOne(db.PostDetail, { onDelete: 'cascade' });
db.PostDetail.belongsTo(db.Post);

/** 1 : 1   Post : PostDetailSelect */
db.Post.hasOne(db.PostDetailSelect, { onDelete: 'cascade' });
db.PostDetailSelect.belongsTo(db.Post);

/** 1 : N   PostDetail : PostDetailImage */
db.PostDetail.hasMany(db.PostDetailImage, { onDelete: 'cascade' });
db.PostDetailImage.belongsTo(db.PostDetail);

/** 1 : N   PostDetail : Facilities */
db.PostDetail.hasMany(db.Facilities, {onDelete: 'cascade' })
db.Facilities.belongsTo(db.PostDetail);

/** 1 : N   PostDetail : Hashtag */
db.PostDetail.hasMany(db.Hashtag, {onDelete: 'cascade' })
db.Hashtag.belongsTo(db.PostDetail);

/** N : M   Post : PostDetail => Hashtag */
db.Post.belongsToMany(db.Hashtag, { through: 'PostHashtag', onDelete: 'cascade' });
db.Hashtag.belongsToMany(db.Post, { through: 'PostHashtag', onDelete: 'cascade' });

🏷 config/config.json

{
  "development": {
    "username": "---",
    "password": "---",
    "database": "---",
    "host": "---",
    "dialect": "mysql"
  }
}

🏷 config/s3.json

{
    "accessKeyId": "---",
    "secretAccessKey": "---",
    "region": "---"
}

🎙 Contributor

About

ON SOPT 합동세미나 27기 SERVER TEAM


Languages

Language:JavaScript 98.8%Language:Pug 0.9%Language:CSS 0.4%