PJ.레미코드_step.1 기획

404·2022년 2월 18일
0

기획

목록 보기
1/3
post-thumbnail

1. 취지

레미콘 운행기록부가 사라진지 꽤 되었다. 하지만 기록부에 대한 수요는 사라지지 않았다고 본다. 운송사업자들은 (일대가 아닌 이상)항상 당일 회전수나 운행거리, 주유량 등 본인의 월 운반비에 영향을 주는 내용들에 대해 기록하고 이를 바탕으로 운반비 명세서의 타당성을 확인하기 때문이다.

운송사업자들의 연령대를 생각했을 때 펜과 종이를 이용해 기록하는 전통적인 방법을 선호하는 사람들이 아주 많을거라 예상되지만 앞으로 어플리케이션을 능숙하게 사용하는 젊은 층들이 늘어남에 따라 앱의 사용자도 많아질 것으로 기대한다.

또한, step.2 단계에서는 그룹관리를 통해 중기사 등 관리목적으로 앱을 사용할 수 있도록 필요성을 제공하며, 운송사업자들의 커뮤니티를 만들어 직장인 필수앱인 Blind와 같은 서비스를 제공한다.

2. tools

  • back-end framework : node.js - express
  • front-end framework: none (vanila JS)
  • view engine : pug.js
  • DB : mongoDB
  • deploy : aws - ec2

3. BM

  • step.2 단계에서 중기사 및 소규모 그룹의 구독 서비스 전환
  • step.2 단계에서 커뮤니티 광고배너 삽입

4. 발전 방향

1) web 서비스 및 web-view app 제작하여 playstore 배포
2) flutter app build
3) 대량 데이터 관리를 위한 서버 개선 및 front-end framework 도입
4) web service에서 - 그룹사용자의 관리 편의기능 강화
5) tesktop app 개발 - 그룹사용자의 app 접근성 개선

5. 기능 정의 개요 (step.1)

개인이 사용하는 기본적인 기능은 아래 url과 같이 한다. 이 앱의 기본 기능이며 모든 기능이 완료 되었을 때 Step.1을 마친 것으로 간주한다. 내용은 다음과 같다.

* main page (/)
* 로그인 페이지 (/login)
* 로그아웃 (/logout)
*	회원가입 (/join)
*	회원정보 변경 -변경과 조회를 동시에 (/user/edit/:id)
* 기록부 입력 (/record/write)
* 기록부 조회 (/record/history)
* 기록부 수정 (/record/edit/:id)

이 외에 step.2 단계에서 추가할 핵심 기능으로 생각하고 있는 것은 아래와 같다.

* 그룹관리
* 커뮤니티

1) 로그인페이지 (page set : 로그인, 회원가입, 회원정보 변경)

회원가입 및 로그인 기능을 제공하며 로그인시 회원정보 변경 url 링크도 포함한다.

//model schiema

User = {
	username,	//required, unique, unchangeable
    name,		//required
    pw,		//required
    phoneNumber,		//required, aouthorized(?)
    plateNumber,		//required, unique, aouthorized(?)
    group : {name, position},
    email,    
    populate - Record
}

유저 DB모델은 위와같이 계획중이다.

  • 초기 상태에서 휴대폰 인증은 진행하지 않을 예정이다. 현 사용자 연령대를 고려했을 때 회원가입에 불필요하고 복잡한 인증 절차는 최대한 배제해야한다.
  • 번호판 인증 기능도 초기상태에서는 제공하지 않는다. 그리고 차량 매매 등의 이유로 자주가 변경됐을시 등을 충분히 고려해서 도입해야할 문제이기도 하다. unique하되 변경할 수 있도록 하며 차량번호로 로그인 할수 있도록 번호판 사진을 인증하는 절차도 필요할 것으로 생각한다.
  • 그룹은 상조회, 중기사 등 개별 그룹명을 부여하고 (group.name), 그룹 관리자 계정을 추가하여(group.positon) 그룹 전체의 운행기록 정보를 볼 수 있도록 한다.
  • 사용자의 운행기록 model을 populate 해서 위 그룹장이 해당 그룹 모두의 기록을 조회할 수 있도록 한다.

2) 기록부 입력

//model schiema

Record = {
  turn,	//default 1 & ++
  siteName,	//required(?)
  distance,	//required(?)
  extraCharge : {water, timeExceed, nightSupport},
  oiling,
  memo,
  populate - User
}

form을 통해 운행 기록 내용을 입력하고, 입력 form과 함께 당일 운행에 대한 개요를 동시에 보여준다.
당일 운행기록은 입력 view에서 확인할 수 있어야 사용자의 page 이동이 줄어들게 되며 수정 또한 용이하다.

  • form에 입력한 내용은 간단한 List 형태로 변환하여 입력 화면 아래쪽에 보여준다.
  • 순번은 자동으로 1번부터 나열되도록 한다 (<li>?)
  • 분명히 대충 갯수나 파악하려고 하는 사람이 있기 마련이다.
    폼에 텍스트를 아무것도 입력하지 않아도 합계 등 계산되도록 구현하는 것이 필요하다.
  • List를 클릭하면 내용이 다시 form에 재입력 되면서 수정할 수 있도록 한다.
  • 내용 추가가 끝나면 저장 버튼을 눌러 최종 저장한다.

3) 기록부 조회

  • 서버에서 json 데이터를 받아 정렬한다.
  • 조회 기준은 날짜, 현장명으로 한다.
  • 기간 조회시 일별 합계 / 요약을 표시하며 + 버튼 입력시 세부 내용을 펼쳐서 보여준다.

4) 기록부 수정

  • 기록부 수정은 1일 단위로 가능하게 한다.
  • 기록부 수정은 입력 단계를 거꾸로 거슬러 오르는 개념으로 한다.
    수정날짜 선택 -> 날짜의 데이터 get -> page에 List up -> List에 삭제/수정 버튼을 클릭시 삭제 or 내용 수정

profile
T.T

0개의 댓글