Skip to content

ononoki0117/RE-T

Repository files navigation

RE:T

RE:TRecovery Note의 줄임말로, 환자와 리트너가 함께 사용하는 재활운동 기록 웹 서비스입니다.

환자는 오늘의 운동, 재활 일기, 달력 기반 기록을 확인하고 입력할 수 있고, 리트너는 회원 관리, 운동 처방, 진행 상황 확인, 채팅 기능을 사용할 수 있습니다.

일본어 README는 README.ja.md에서 확인할 수 있습니다.

프로젝트 소개

2024년 웹 프로그래밍 및 실습 수업에서 진행한 Node.js / Express 기반 웹 프로젝트입니다. 재활운동을 지속적으로 기록해야 하는 환자와 이를 관리하는 리트너의 사용 흐름을 나누어 설계했습니다.

주요 기능

  • 로그인 / 회원가입
  • 환자 / 리트너 회원 구분 가입
  • 환자 메인 화면
  • 오늘의 재활운동 진행률 표시
  • 운동 Todo / 기록 확인
  • 재활 일기 작성
  • 달력 기반 운동 기록 조회
  • 리트너 회원 관리
  • 리트너용 환자 운동 처방
  • 채팅 화면

기술 스택

  • Node.js
  • Express
  • EJS
  • MongoDB
  • express-session
  • multer
  • body-parser

프로젝트 구조

common/         공용 유틸, 인증, DB 연결
domain/         EJS 뷰와 라우터, 화면별 컨트롤러
public/         정적 리소스(CSS, 이미지)
controller.js   루트 진입 제어
router.js       최상위 라우터
server.js       서버 시작 파일

실행 방법

1. 의존성 설치

npm install

2. 환경변수 설정

프로젝트 루트에 .env 파일을 만들고 아래 값을 설정합니다.

PORT=3000
DB_URL=mongodb://localhost:27017/your-database
DB_NAME=your-database-name
DB_USER=your-db-user

DB_USER는 일부 인증 로직에서 참조되지만, 현재 코드에서는 DB_URLDB_NAME이 핵심입니다.

3. 서버 실행

npm start

server.js가 실행되며, PORT에 지정한 포트로 서버가 구동됩니다.

주요 라우트

공통

  • GET /
    로그인 상태에 따라 환자 또는 리트너 메인 화면으로 이동합니다.
  • GET /login
    로그인 화면
  • POST /login
    로그인 처리
  • GET /sign-up/select
    회원 종류 선택 화면

환자

  • GET /patient/main
  • GET /patient/diary
  • POST /patient/diary
  • GET /patient/history
  • GET /patient/calendar
  • GET /patient/add
  • POST /patient/add
  • GET /patient/calendar/info

리트너

  • GET /retner/main
  • GET /retner/chats
  • GET /retner/calendar
  • GET /retner/exercisePush
  • GET /retner/patient/list
  • GET /retner/chats/list
  • GET /retner/patient
  • GET /retner/patient/add
  • POST /retner/patient/add

데이터베이스

MongoDB를 사용합니다.

  • common/database/database.connect.js에서 연결을 관리합니다.
  • 주요 컬렉션 이름은 코드상 USER입니다.
  • 회원 정보, 프로필, 로그인 세션 관련 데이터가 저장됩니다.

참고

  • 뷰 엔진은 EJS이며, domain/ 폴더를 views 경로로 사용합니다.
  • 정적 파일은 public/ 폴더에서 제공합니다.
  • 현재 npm test 스크립트는 정의되어 있지 않습니다.

화면 폴더

  • domain/login/ 로그인 화면
  • domain/sign-up/ 회원가입 화면
  • domain/main/patient/ 환자 메인 화면
  • domain/main/retner/ 리트너 메인 화면
  • domain/component/ 공용 컴포넌트

라이선스

이 프로젝트는 MIT License를 따릅니다.

메모

이 저장소는 수업용 프로젝트 성격이 있어 파일명이나 라우트명에 일부 오타가 포함되어 있습니다.
예: retner, contorller, Callender

About

웹프로그래밍및실습 최종프로젝트

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors