6조: 김도경, 박홍정, 최준영
서비스 소개:
카이스트 학생들이 학교 소유 자전거를 일정 기간 동안 빌려서 사용할 수 있게 도와준다.
최소 핵심 기능:
- 일반 사용자:
- 카이스트 소유 자전거 신규 대여 신청
- 자전거 정보 조회 및 누적 벌점 조회
- 관리자:
- 안전 문제 야기할 수 있는 방치된 자전거 소유자 검색
- 해당 소유자에게 벌점 부여
와이어프레임:
-
로그인 / 회원가입 화면
-
일반 유저 화면
-
관리자 화면
GET/POST
DATA
- 팀이 해야 할 일
- 통일된 화면 템플릿 만들기(상단 배너)
- 각자 브랜치들 1차 merge 하기(flask api 구현된 부분까지)
- 로그인 시 jwt에서 user인지 admin인지 구분하여 각각에 맞는 화면으로 redirect 해주기
- 준영 할 일
- [x] flask-jwt-extended compatibility issue 해결
- 참고에러:
- ERROR: flask 1.1.4 has requirement Werkzeug<2.0,>=0.15, but you'll have werkzeug 2.0.2 which is incompatible.
- 해결
- Werkzeug 1.0.1로 버전 조정했음
- [x] jwt 기반 로그아웃 기능 구현해서 별도 브랜치에 커밋
- [x] 회원가입 시 비밀번호 암호화해서 db에 저장하는 기능 추가
- [x] jwt 기반 로그아웃 시 에러 메시지를 반환 대신 로그인 화면으로 redirect해주는 방법 찾아서 구현
- [x] 로그인 시 access_token을 client한테 주면서 동시에 user page 혹은 admin page로 redirect해주는 방법 고민
- [x] 토큰에 관리자인지 일반 유저인지 정보를 넣어두고, 이 정보를 바탕으로 로그인 할 때, 유저의 토큰이면 유저 뷰로, 관리자의 토큰이면 관리자 뷰로 redirect 해주기
- 문제
- 토큰에 관리자 정보를 어떻게 넣을 것인가?
- [ ] 관리자만 쓸 수 있는 endpoint에는 특정한 제약 조건 걸어두기(app.py에서)
- [ ] 로그인 한 상태에서 localhost:5000/에 접속시 index.html이 아닌, 유저나 관리자 페이지로 redirect해주기
- 도경 할 일
- [ ] user 화면 만들기
- [ ] show_bike()??? → GET. jinja2로 만들 수 있을듯. 각각의 bike 클릭하면 해당 bike의
- [ ] new_bike() : POST. 버튼 누르면 클라이언트가 서버에 user_id, want_bike(bike_number)를 보냄.
- [ ] search() : GET