Skip to content

Latest commit

 

History

History
59 lines (43 loc) · 3.83 KB

File metadata and controls

59 lines (43 loc) · 3.83 KB

ROOM 302 PROJECT

ROOM 302 PROJECT는 ITM 전공 실습실(302호)에 마련된 좌석 정보를 웹을 통해 실시간으로 확인하고, 팀 프로젝트나 개인 학습에 필요한 자리를 보다 손쉽게 찾을 수 있도록 도와주는 서비스입니다. 302호에 팀플이나 과제를 하러 갈 때, 매번 직접 가서 자리가 있는지 확인해야 했던 불편함을 개선하기 위해 기획되었습니다.

주요 기능

  1. 실시간 좌석 현황 확인

    • 사용 중인 자리와 비어 있는 자리를 한눈에 파악할 수 있습니다.
    • 각 자리는 예약(사용) 시작 시간과 예상 사용 시간을 설정하여 관리할 수 있습니다.
  2. 좌석 사용/반납 및 변경

    • 자리가 비어 있으면 클릭 한 번으로 사용 시작 시간을 설정하고 사용을 시작합니다.
    • 이미 자리를 사용 중인 경우, 사용자가 직접 시간 만료 전에 “반납”할 수 있습니다.
    • 사용자가 이미 다른 자리를 사용 중일 때 새 자리를 선택하면, 현재 좌석을 반환하고 새 좌석으로 즉시 변경할 수 있습니다.
  3. 사용 시간 만료 자동 관리

    • 사용 시작 시 설정한 예상 사용 시간이 지나면 자동으로 자리가 비워지도록 처리되어 있습니다.
    • JavaScript에서 매초마다 좌석 사용 시간을 체크하여, 시간이 끝나면 자동으로 반납 처리합니다.
  4. 회원 가입 및 비밀번호 변경

    • Django의 기본 유저 모델 확장(UserProfile)을 사용하여, 보안 질문/답변을 등록하는 형태의 회원가입을 제공합니다.
    • 가입한 유저는 로그인 후 비밀번호 찾기를 통해 보안 질문/답변을 확인하여 비밀번호를 재설정할 수 있습니다.

기술 스택

Backend

  • Python 3 & Django 4.2.11

    • 전반적인 웹 애플리케이션 로직을 처리하고, URL 라우팅과 데이터베이스 ORM을 제공합니다.
    • Django의 Model, View, Template 구조를 기반으로 프로젝트가 구성되어 있습니다.
    • settings.py, urls.py, wsgi.py, asgi.py 파일을 통해 Django 프로젝트 환경 설정이 되어 있습니다.
  • SQLite

    • Django에서 기본적으로 제공하는 SQLite 데이터베이스를 사용하고 있습니다.
    • 마이그레이션 스크립트(예: 000x_*.py)를 통해 테이블 생성, 필드 추가/변경 등의 DB 스키마 변화를 관리합니다.

Frontend

  • HTML/CSS (Django Template)

    • login.html, createAccount.html, changePassword.html, seats.html 등 Django 템플릿 엔진을 통해 HTML을 렌더링하고 있습니다.
    • CSS 파일을 별도로 작성하여 기본적인 레이아웃 및 UI 스타일을 적용했습니다.
  • JavaScript

    • 좌석의 사용 시간 체크와 자동 반납 처리, 모달 창 제어 등에 사용됩니다.
    • fetch API를 사용해 비동기적으로 Django 서버와 통신하며, 좌석의 사용/반납을 즉시 업데이트합니다.
    • 예) seats.html 내부 <script>에서 주기적으로 서버에 요청을 보내 좌석 정보를 갱신하고, 사용 시간 만료를 확인합니다.

기타

  • Django Auth
    • Django의 기본 User 모델을 활용하여 회원가입, 로그인, 비밀번호 변경 기능을 구현했습니다.
    • 추가적인 회원 정보(보안 질문, 답변 등)는 UserProfile 모델로 확장해 저장합니다.

향후 개선 사항

  • 반응형 디자인: 모바일/태블릿 환경에서도 편리하게 사용할 수 있도록 UI 개선.
  • 권한 분리: 관리자 전용 좌석 강제 해제/유저 관리 화면 추가.
  • 더 상세한 예약 기능: 예약 시간대 지정 후 승인/거절 로직 등.
  • 메일/SMS 알림 연동: 예약 시간 만료 또는 변경 시 알림.