Giter Club home page Giter Club logo

graduationproject's Introduction

2022년도 2학기 졸업프로젝트

Version 0.5

프로젝트 설명

프로젝트 메인 구성

본 프로젝트의 목표는 척추 부근에 센서를 달아 얻는 데이터를 통해 사용자의 현재 허리 상태를 측정하고 이를 처리하여 사용자가 현재 자신의 허리 자세를 인지하고 올바른 자세를 취할 수 있게 하는 것입니다. 본 레포지토리에서는 백엔드 서버인 ExpressJS 만 다룹니다.

라즈베리파이

라즈베리파이는 센서로부터 데이터를 수신받아 자체적으로 처리한 뒤 이를 웹서버로 전송합니다. 데이터는 사용자의 척추에 붙어있는 세개의 9축 센서의 고유 측정값과 한번 정제 과정을 거쳐 얻은 정보들입니다. 여러가지 한계로 인해 라즈베리파이는 고유IP를 가지고 있지 않습니다. 따라서 라즈베리파이는 웹서버의 응답을 제외하면 웹서버에게 단방향으로만 송신합니다. 웹서버가 수신하는 데이터는 REST 기반의 JSON 타입의 객체입니다.

웹서버

고유한 IP를 가지고 있으며, 사용자의 REST 기반의 요청을 받아주는 ReactJS와 요청을 받아 처리하는 ExpressJS가 존재합니다. 웹 페이지에 대한 Routing은 React가 담당하며, 필요한 처리를 Axios를 통해 백엔드 서버와 통신하여 처리를 하게 됩니다.

디렉토리 설명

  1. /public : React.js에서 빌드된 파일들이 존재하는 곳입니다. 본 디렉토리에서는 다루지 않습니다.
  2. /loaders : 서버가 시작됨과 동시에 특정 설정들을 가져오는 파일이 저장되어 있습니다.
  3. /models : DB에서 사용하는 Table의 정의가 저장되는 곳입니다.
    • /index.js : Sequelize ORM을 사용하여 기본 설정 및 Table을 만들어줍니다.
  4. /routes : REST 요청에 따른 라우팅 처리를 진행합니다. 프론트와 axios로 통신합니다.
  5. /services : routes에 의해 호출되어 비지니스 로직에 따라 데이터를 처리하고 이를 routes에 반환합니다.
  6. /setting : .env를 제외한 다른 기본 설정 파일들이 존재합니다.
    • /database : mysql2 모듈을 위한 설정 파일입니다. (미사용)
    • /sequelize : sequelize 설정값이 저장되어 있습니다.
    • /env : dotenv 설정을 가장 먼저 로딩하기 위해 사용합니다.
  7. /utils : 자주 사용하는 함수들이 저장되어 있습니다.

개발 스택

  • Framework : Expressjs
  • Database : MariaDB, Sequelize(ORM)

DB 테이블 설명

ERD

ERD

  1. whitelists : 서버에 라즈베리파이를 IMEI값을 바탕으로 등록하기 위한 테이블입니다.
  2. users : 어떤 계정의 소유자가 어떤 라즈베리파이를 사용하는지, 또한 동시에 어떤 정보를 가지고 있는지를 확인할 수 있는 테이블입니다.
  3. rasbpies : IMEI 값으로 라즈베리파이를 구분하며, 매 초마다 라즈베리파이에서의 센서 데이터와 처리된 정보 데이터를 수신합니다.

다른 팀원들의 코드

graduationproject's People

Contributors

mangcho avatar

Stargazers

 avatar

Watchers

 avatar

graduationproject's Issues

commit 양식

Harry's commit message template

제목은 대문자로 시작합니다.

본문과 푸터는 선택 사항 입니다.

#######제목#######

#######본문#######

#######푸터#######

##################

Fix : 수정

Add : 추가

Remove : 삭제

Simplify : 단순화

Update : 보완

Implement : 구현

Prevent : 방지

Move : 이동

Rename : 이름변경

##################

참고 : https://haesoo9410.tistory.com/299

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.