Django를 이용한 스케쥴러 제작 (1) - 정의 및 구성
08 Jun 2017 | Django Web service Python Scheduler Material Design발단
1일 1커밋을 생활화하기 위해 Django를 이용한 간단한 서비스를 만들기로 했다.
운동을 좋아하는 만큼 운동 스케쥴러를 작성하기로 했고, 프로젝트 목표와 개발 방향을 설정했다.
목표
- 스스로 사용할 만한 서비스 구축
- 깔끔한 디자인
- 확장성(?)
요구사항
- 일정을 추가할 수 있고, 일별/월별 보기가 가능할 것
- 당일 해야할 운동 종류를 표시하며, 해당 Todo 리스트에서 수행 여부를 표시할 수 있을 것
- 수행한 항목의 수행 시간에 비율을 그래프로 출력할 것
DB 구성
크게 운동 종류를 나타낸 Category 테이블을 만들고, 카테고리 테이블을 Foreign key로 이용한 List 테이블,
마지막으로 각각의 개별 운동을 나타내는 Workout 테이블을 생성했다.
테이블 상세 구성은 아래와 같다.
Workout List 테이블
id | workout_title | category_id |
---|---|---|
PK | 개별 운동 이름 | FK(Category) |
Workout Category 테이블
id | category_name |
---|---|
PK | 운동 카테고리 이름 |
Workout 테이블
id | create_date | workout_done | owner_id | workout_id | duration | workout_date |
---|---|---|---|---|---|---|
PK | 생성일 | 운동 수행여부 | 소유자 | FK(List) | 수행시간(분) | 수행 날짜 |
App 구성 및 외부 라이브러리
App은 할일을 출력하는 todolist, 월별 목록을 출력하는 calendar,
그래프를 출력하는 stats의 세 부분으로 구성되어 있다.
전체적인 Look&Feel은 심플한 Material Design 형태로 가기로 하고, Materialize를 이용했다.
그래프를 출력하기 위해서는 Plotly와 Matplotlib을 고민하다 최종적으로 matplotlib으로 결정하였다.
Comments