RE:T 는
Recovery 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 서버 시작 파일
npm install프로젝트 루트에 .env 파일을 만들고 아래 값을 설정합니다.
PORT=3000
DB_URL=mongodb://localhost:27017/your-database
DB_NAME=your-database-name
DB_USER=your-db-userDB_USER는 일부 인증 로직에서 참조되지만, 현재 코드에서는 DB_URL과 DB_NAME이 핵심입니다.
npm startserver.js가 실행되며, PORT에 지정한 포트로 서버가 구동됩니다.
GET /
로그인 상태에 따라 환자 또는 리트너 메인 화면으로 이동합니다.GET /login
로그인 화면POST /login
로그인 처리GET /sign-up/select
회원 종류 선택 화면
GET /patient/mainGET /patient/diaryPOST /patient/diaryGET /patient/historyGET /patient/calendarGET /patient/addPOST /patient/addGET /patient/calendar/info
GET /retner/mainGET /retner/chatsGET /retner/calendarGET /retner/exercisePushGET /retner/patient/listGET /retner/chats/listGET /retner/patientGET /retner/patient/addPOST /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