[공간위 사이트 리뉴얼] 0-2. 현황

권혁원·2024년 7월 21일

scspace

목록 보기
5/6
post-thumbnail

현재의 공간위 사이트의 기능을 기술한다.
바꿀 것은 바꾸고. 남길 것은 남기고.

1. Header

로고, 공지사항, 소개, 공간(공간에 대한 설명), 예약, 이벤트(공지사항), 로그인 이 있다.

공간

예약

문의사항

로그인 버튼

로그인


KAIST SSO 로그인을 활용한다.

    let std_no = (p.ku_std_no === null) ? p.ku_employee_number : p.ku_std_no;
    let sql = `INSERT IGNORE INTO users (student_id,  name,  phone, email, type) VALUES (?,?,?,?,?);`;
    await conn.query(sql, [std_no, p.ku_kname, p.mobile, p.mail, 'user'])
  • ku_std_no 혹은 ku_employee_number
  • ku_kname
  • mobile
  • mail
    을 사용하고 type을 enum으로 설정한다.

2. Footer

링크들이 있다.

위 사항들이 공통적으로 있고, 앞으로는 각 페이지의 body만 기술한다.

3. home (/)


관리자의 경우(공간위원) 합주실 및 창작공방 비번이 뜬다.
메인 화면이 있어 예약하기와 예약 현황으로 바로 갈 수 있다.
소음 양해서 양식과 물품 대여 공지는 바로 양식 다운로드가 된다.

faq를 키우면 사진도 커진다.

4. 공지사항 (/notice)

공지사항 조회(/view/{id})

공지를 볼 수 있다.
의외로 조회수가 잘 오른다.
심지어 뒤로가기 누르면 조회수가 오른다.
세심하군.

소개 (/introduction)

내부는 그냥 위의 목차 클릭에 따라 SPA로 된다.

소개


기본적인 소개 사항이다.

사업 소개




사업을 소개한다.

회칙


회칙을 pdf로 볼 수 있다.
저거 다 목차가 아니라 별개 파일인건 비밀이다.

공간(/space)

홈이 없다. 무조건 들어가야함.

들어가면 header에 공간 이름, 그리고 body에서 한줄 소개, 사진, 소개, 사용방법, 주의사항 이 있다.

설명에 들어가는 분류는 다음과 같다.

  • 상시 예약
  • 페널티
  • 상시 개방
  • 사용자
  • 예약과 불일치
  • 분실물의 처리
  • 정리정돈
  • 구비 물품
  • 사용 가능한 시간
  • 수용 인원
  • 목적의 제한
  • 정기 예약
  • 예약 사용자
  • 공연집중기간 예약
  • 작업물의 보타인 작업물 주의
  • 화기 제한
  • 작업 후 환기
  • 작업용 책상 정리
  • 공간 사용 규칙
  • 오픈스페이스 파츠별 설명
  • 소음에 대한 양해서

정리할 필요 없이 그냥 새로 짜야 할 것 같다...

개인연습실(/individual-practice-room)

이후는 그냥 리스트로만 정리하자.

  • 개인연습실
  • 피아노실
  • 합주실
  • 무예실
  • 울림홀
  • 미래홀
  • 세미나실
  • 창작공방
  • 오픈스페이스

예약 (/reservation)

예약을 받는다.
공간별로 형식이 다르다.

  • 세부 장소: 세미나실 1, 2 등
  • 예약 시간 시작 & 끝
  • 약관 체크
  • 행사 이름
  • 행사 내용
  • 멤버 선택
  • 단체 이름
  • 당일 리허설 시간
  • 근로 배정
  • 예상 참여 인원
  • 장비 사용
  • 책상과 의자
  • 로비 사용 여부
  • 음식 (섭취 음식 종류)
  • 성격 (종교 영리 정치 체크)

개인연습실, 피아노실

합주실, 무예실

미래홀, 울림홀

세미나실

창작공방

오픈스페이스

예약현황 (/calendar)

공간별로, 시간별로 나온다.
근데 이건 한 페이지에서 나와서 진짜 불편하다 (날짜를 옮기면 장소가 초기화된다던가)

공간별로 캘린더 색상이 다르다. 근데 어차피 한번에 안보이는데?
미승인은 희미하게 보인다.

Week

Month

Agenda

예약 추가 정보

예약을 클릭하면 추가 정보가 뜬다.
예약자 및 관리자는 수정할 수 있다.
관리자의 경우 빈 시간을 수정하면 새로운 예약이 들어간다.


FAQ (/faq)



누르면 커진다. 추가하기는 작동하지 않는다.

문의사항 (/ask)

문의 세부 화면(/view/{id})

이벤트 (/event)


사진을 누르면 인스타그램으로 이동한다.

마이페이지

내 예약 기록 및 팀 현황을 볼 수 있다.

나의 팀 (/team)

팀 등록 (/create)

관리자 페이지(/manage)

예약 및 문의에 답변할 수 있다.
또한 합주실 비밀번호와 창작공방 비밀번호 변경 버튼이 있다.

예약 승인 관리 (팝업)


99. Database

ask

Table ask {
  id int [pk, increment]
  writer_id char(8)
  time_post datetime
  time_edit datetime [null]
  title varchar(255)
  content text
  hits int [default: 0]
  state enum('wait', 'receive', 'solve')
  comment text [null]
}

질문에 해당하는 부분.
근데 너네 답변은 하니?

easteregg

Table easteregg {
  student_id char(8) [pk]
  resv_hits int [default: 0]
  win_prize tinyint(1) [default: 0]
  cancel_resv int [default: 0]
}

옛날 이스터에그 이벤트의 흔적.
뭔진 모르겠다 이제.

etc

Table etc {
  id int [pk, increment]
  grp_password varchar(20) [null]
  ws_password varchar(20) [null]
}

뭔지 모르겠음 22

faq

Table faq {
  id int [pk, increment]
  question varchar(255)
  answer text
}

faq를 관리하는 db.
그렇다.

member

Table member {
  id int [pk, increment]
  teamid int
  name varchar(255)
  student_id char(8)
}

팀 멤버를 관리하는 DB.
팀이 거의 사문화돼서 안쓴다.

notice

Table notice {
  id int [pk, increment]
  time_post datetime
  time_edit datetime [null]
  title varchar(255)
  content text
  hits int [default: 0]
  important tinyint(1) [default: 0]
}

공지사항

Reservation


Table reservation {
  id int [pk, increment]
  reserver_id char(8)
  reserver_name char(128)
  space enum('individual-practice-room1', 'individual-practice-room2', 'individual-practice-room3', 'piano-room1', 'piano-room2', 'seminar-room1', 'seminar-room2', 'dance-studio', 'group-practice-room', 'mirae-hall', 'ullim-hall', 'open-space', 'workshop')
  team_id int [null]
  time_from datetime
  time_to datetime
  time_request datetime
  time_last_modified datetime [null]
  content json [null]
  comment varchar(420) [null]
  state enum('grant', 'wait', 'rejected') [null]
}

예약 관련.
enum이 너무 길다.
enum은 수정할 것.

space


Table space {
  id int [pk, increment]
  space_name enum('individual-practice-room', 'piano-room', 'seminar-room', 'dance-studio', 'group-practice-room', 'mirae-hall', 'ullim-hall', 'open-space', 'workshop')
  menu enum('introduction', 'usage', 'caution', 'shortintro')
  info json
}

team

Table team {
  id int [pk, increment]
  name char(70)
  delegator_id char(8)
  time_register datetime
}

team을 관리한다.
합주실 무예실엔 필수다.

users

Table users_f {
  id int [pk, increment]
  student_id char(8) [unique]
  name varchar(255)
  phone char(20) [null]
  email varchar(255) [null]
  type enum('admin', 'user')
}

마치며

생각보다 기능이 많았다.
근데 이게 안되네 싶은게 더 많다.
수정 기획 빡시게 해야 할 것 같다.

profile
개발할래용

0개의 댓글