Coder Social home page Coder Social logo

apophisserver's Introduction

☄️ Apophis Server


로고

npm_bedge node_bedge


  • SOPT 27th Virtual Hackathon : APPJAM - Team Apophis

  • 프로젝트 기간: 2020.12.27 ~ 2021.01.15


☄️ 미리 맞이해보는 당신의 이른 죽음

"죽음이라는 새로운 시각으로 과거의 삶을 바라보고, 회고하며 그를 통해 현재와 미래의 삶을 재구성한다."


"지구 멸망 발표가 난 어느 말도 안되는 날, 아무 번호나 눌러 전화를 하게 된 아포니머스. 그리고 그걸 받은 당신. 다짜고짜 멸망까지의 7일을 함께 보내달라고 하더니, 심지어 이 7일 동안 짐을 싸서 당신에게로 가는 여행길에 오른다고 하는데."


KakaoTalk_Photo_2021-01-05-21-48-55


🗂 API 명세서


🗝 Main Function

🗣 Interaction

  • 아포니머스와의 채팅
  • 익명의 누군가와 주고받는 편지

🎞 Record

  • 사용자 자신에 대한 회고 기록
  • 자신의 죽음을 가정하에 작성해보는 버킷 리스트


🔗 Architecture

아키텍쳐



📖 Dependencies Module

image


✏️ Code Convention

  • git branch
main
   |
   |--- dev
   |--- sehwa_dev
   |--- suzie_dev
   |--- dev_suzie2
  • git commit rules
[Add] 기능추가
[Delete] 삭제
[Update] 기능 수정
[Fix] 버그 수정
[Docs] 문서 정리
[Chore] 잡일


📋 ERD

image



⚙️ Models

db.User = require('./user')(sequelize, Sequelize);
db.Chat = require('./chat')(sequelize, Sequelize);
db.ChoiceWords = require('./choiceWords')(sequelize, Sequelize);
db.Reply = require('./reply')(sequelize, Sequelize);
db.ReplyWords = require('./replyWords.js')(sequelize, Sequelize);
db.ChatDetails = require('./chatDetails.js')(sequelize, Sequelize);
db.Letter = require('./letter.js')(sequelize, Sequelize);
db.LetterReceive = require('./letterReceive.js')(sequelize, Sequelize);
db.BucketList = require('./bucketList.js')(sequelize, Sequelize);

/* 1: N User:Reply */
db.User.hasMany(db.Reply,{onDelete:'cascade',foreignKey: 'UserIdx',sourceKey:'UserIdx'}) 
db.Reply.belongsTo(db.User,{foreignKey: 'UserIdx',targetKey:'UserIdx'});

/* 1: N ChatDetails:Chat */
db.ChatDetails.hasMany(db.Chat,{onDelete:'cascade',foreignKey: 'ChatDetailsIdx',sourceKey:'ChatDetailsIdx'})
db.Chat.belongsTo(db.ChatDetails,{foreignKey: 'ChatDetailsIdx',targetKey:'ChatDetailsIdx'})

/* 1: N ChatDetails:ChoiceWords */
db.ChatDetails.hasMany(db.ChoiceWords,{onDelete:'cascade',foreignKey: 'ChatDetailsIdx',sourceKey:'ChatDetailsIdx'})
db.ChoiceWords.belongsTo(db.ChatDetails,{foreignKey: 'ChatDetailsIdx',targetKey:'ChatDetailsIdx'})

/* 1: N Reply:ReplyWords */
db.Reply.hasMany(db.ReplyWords,{onDelete:'cascade',foreignKey: 'ReplyIdx',sourceKey:'ReplyIdx'})
db.ReplyWords.belongsTo(db.Reply,{foreignKey: 'ReplyIdx',targetKey:'ReplyIdx'})

/* 1: N ChatDetails:Reply */
db.ChatDetails.hasMany(db.Reply,{onDelete:'cascade',foreignKey: 'ChatDetailsIdx',sourceKey:'ChatDetailsIdx'})
db.Reply.belongsTo(db.ChatDetails,{foreignKey: 'ChatDetailsIdx',targetKey:'ChatDetailsIdx'})

/* 1: 1 User:Letter */
db.User.hasOne(db.Letter,{onDelete:'cascade',foreignKey: 'UserIdx',sourceKey:'UserIdx'})
db.Letter.belongsTo(db.User,{foreignKey: 'UserIdx',targetKey:'UserIdx'})

/* 1: N Letter:LetterReceive */
db.Letter.hasMany(db.LetterReceive,{onDelete:'cascade',foreignKey: 'LetterIdx',sourceKey:'LetterIdx'})
db.LetterReceive.belongsTo(db.Letter,{foreignKey: 'LetterIdx',targetKey:'LetterIdx'})

/* 1: 1 User:LetterReceive */
db.User.hasOne(db.LetterReceive,{onDelete:'cascade',foreignKey: 'UserIdx',sourceKey:'UserIdx'})
db.LetterReceive.belongsTo(db.User,{foreignKey: 'UserIdx',targetKey:'UserIdx'})

/* 1: N User:BucketList */
db.User.hasMany(db.BucketList,{onDelete:'cascade',foreignKey: 'UserIdx',sourceKey:'UserIdx'})
db.BucketList.belongsTo(db.User,{foreignKey: 'UserIdx',targetKey:'UserIdx'})


👥 Apophis Server Team

류세화 이수진
Screen Shot 2021-01-06 at 1 33 07 PM Screen Shot 2021-01-14 at 11 25 48 PM
- rdb 설계
- 배포환경 구축
- 대화창 선택지 상세 조회
- 사용자 대답 입력
- 일차별 채팅 전체 조회
- 익명의 누군가와 주고받는 편지
- rdb 설계
- 배포환경 구축
- 아포니머스 채팅 조회
- 사용자 로그인/회원가입
- 사용자 대답 입력
- 버킷리스트 조회 및 입력

apophisserver's People

Contributors

sophryu99 avatar suzieep avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar

Forkers

eunbeelee

apophisserver's Issues

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.