공부한 것 꼭꼭 씹어먹기

[앱시트 AppSheet] 휴가 관리 어플 - 0. 구상하기 본문

노코딩으로 문제 해결하기/AppSheet - 앱시트

[앱시트 AppSheet] 휴가 관리 어플 - 0. 구상하기

젤라솜 2022. 8. 9. 16:43
반응형

 

저희 회사는 아직도 휴가를 쓸 때는 A4용지에 휴가신청서를 출력해서 제출하는 10명 미만의 작은 회사입니다.

사원들은 매번 신청서를 작성해야 하고 프린트해서 서명한 뒤 제출하면 매니저는 엑셀에 휴가 내용을 기입합니다.

매우 번거롭고 종이도 낭비될 뿐 아니라 매니저 컴퓨터 내의 엑셀  파일이 날아가 버리면 골치 아파지는 이 문제를 해결하기 위해 휴가 관리 어플을 만들어 보겠습니다.

 

일단 이 어플의 기능과 각 기능에서 신경써야 할 부분을 생각나는대로 써봤습니다. 

 

워크플로우

  1. 사원 A가 휴가를 신청한다 : 신청자는 로그인 한 본인만 가능, end date가 start date보다 작을 수 없음, 남은 휴가 일수에서 신청한 휴가 일수를 뺀 값이 0보다 커야한다. 그렇지 않을 경우 alert 띄우기.
  2. 휴가 테이블에 insert 된다 : status는 사용자 입력이 아닌 '승인 대기'가 default로 입력됨
  3. A의 direct manager인 B에게 이메일이 간다 ( → 나중에 추가하기)
  4. B는 A가 신청한 휴가의 상태를 승인/반려/대기 중 하나로 변경한다 ( → 관리자 메뉴는 지금 없으니까 일단 스프레드 시트에서 바로 업데이트 한다)
  5. 승인으로 업데이트 되는 경우 A의 소진된 휴가에 신청한 휴가 일수를 더하고, 남은 휴가에서 신청한 휴가 일수를 뺀다 ( → 앱스크립트를 활용한다?)

 

👷‍♀️ 사원 A : 휴가 신청 -> 💻 프로그램 : 휴가 테이블에 '승인 대기'상태로 insert -> ( 👩‍💼 매니저 B : 이메일을 받는다 ) -> 👩‍💼 매니저 B : 휴가의 상태를 승인/반려 중 하나로 update -> 💻 프로그램 : 승인일 경우, 사원 A의 휴가 사용량을 계산하여 update

 

 

 

 

화면 구성

화면 구성은 앱시트 샘플 중 PTO Tracker라는 앱과 비슷하게 만들어 보겠습니다. (비슷   똑같...)

PTO-Tracker
PTO-Tracker

 

  • Upcoming : 휴가 마지막 날이 오늘 이후인 모든 휴가 리스트를 신청자 별로 묶어서 보여줌 (group by 신청자)
    • 한 줄 클릭시 : 휴가 상세 내역 표시
    • add 버튼 : 휴가를 새로 신청한다 (이때, 신청자는 로그인 한 본인만 가능)
  • Calendar : 달력에 이번 달 휴가 상황이 표시되어 한 눈에 알 수 있음
    • 달력 내의 휴가 클릭시 상세 내역 표시
    • add 버튼 : 휴가를 새로 신청한다 (이때, 신청자는 로그인 한 본인만 가능)
  • Member : 직원 리스트
    • 한 줄 클릭시 : 해당 직원 정보, 현재 남은 휴가 개수, 올해 쓴 휴가 내역 표시(최근순서대로 sort)
    • 상세 내역에서 direct manager 클릭시 그 매니저의 상세 정보로 이동

 

 

 

데이터 베이스

새로운 구글 스프레드 시트를 열어 member와 leave 시트를 만들어 줍니다.

member와 leave는 앱시트에서 테이블 이름으로 쓰이게 됩니다.

구글-스프레드-시트에-두개의-시트를-만듭니다
구글-스프레드-시트에-두개의-시트를-만듭니다

 

member 시트에는 아래와 같은 헤더를 만들어 주고 샘플 데이터를 5개 정도 넣어줬습니다.

member-시트
member-시트

 

leave 시트는 헤더만 넣어줍니다.

leave-시트
leave-시트

 

각 테이블에서 빨간색으로 표시한 이메일과 Id는 각 테이블의 key로 사용할 예정입니다.

 

이제 스프레드 시트 제목을 '휴가 관리'로 바꾸고 앱시트를 시작해 줍니다.

확장 프로그램 > AppSheet > 앱 만들기 클릭 후 나오는 화면에서 'Customize you app'을 클릭하면 됩니다.

구글스프레드시트에서-앱시트로-가는법
구글스프레드시트에서-앱시트로-가는법

 

 

 

이렇게 기본적인 로직, 화면, 데이터베이스에 대한 구상을 마쳤습니다.

이제 앱시트에 데이터베이스를 연결한 뒤 그 데이터를 화면에 보여주는 작업을 해보겠습니다.

반응형
Comments