1Components구성
| Part부분 | Google toolGoogle 도구 | Does하는 일 |
|---|---|---|
| Screens and approvals화면·결재 | AppSheet (Core edition, included in our plan)AppSheet (Core, 현재 요금제에 포함) | forms, approval inbox, emails, approval PDFs신청서, 결재함, 알림 메일, 승인 PDF |
| Data데이터 | Google Sheets: one file, one tab per tableGoogle Sheets: 파일 하나, 표마다 탭 하나 | every record; readable and exportable without the app모든 기록, 앱 없이도 열람·내보내기 가능 |
| Background jobs자동 작업 | Apps Script (a few small scripts under admin@)Apps Script (admin@ 소유의 작은 스크립트 몇 개) | document numbers, nightly backup and checks문서번호, 야간 백업·점검 |
| Files파일 | Shared drives공유 드라이브 | project files, approval PDFs, archive사업 파일, 승인 PDF, 보관소 |
| Accounts, mail, groups계정·메일·그룹 | Google Workspace Business StandardGoogle Workspace Business Standard | sign-in, aliases, groups, 2-step verification로그인, 별칭, 그룹, 2단계 인증 |
2Progress against requirements필요사항 대비 진행 현황
runs in the test version시험판에서 작동
structure agreed, partly built구조 확정, 일부 구현
needs your answer본부 답변 필요
| You asked for필요사항 | Status상태 | What works in the test version시험판에서 되는 것 | Still open남은 것 |
|---|---|---|---|
| Leave management휴가 관리 | Working작동 | Leave by day, half day or hours; weekends and office holidays not counted. Balance: entitlement, carry-forward, used, in approval, remaining. Team leave view for managers.일·반일·시간 단위 휴가. 주말과 사무소 공휴일은 빼고 계산. 잔여: 부여·이월·사용·결재 중·잔여. 매니저용 팀 휴가 보기. | Leave rules: carry-over limit, extra days for service, office hours휴가 규정: 이월 상한, 근속 가산, 근무 시간 |
| Request and document approvals, with urgency and deadline요청·문서 결재, 긴급·기한 | Working작동 | Six request types, one approval flow. Urgent first; deadlines show "Due in n days" or "Overdue". Return, reject, recall, withdraw, cancel. Up to three approvers in turn. Ref. No. and approval PDF.신청 유형 6개를 한 결재 흐름으로. 긴급 건은 맨 위, 기한은 "n일 남음"·"기한 지남"으로 표시. 반송·반려·회수·철회·취소. 결재자 최대 3명 순차. 문서번호와 승인 PDF. | None없음 |
| Basic financial management기초 재무 | Working작동 | Payment or purchase, cash advance, expense claim (settles trips and advances). Payment confirmed by someone other than the requester and approver. Budget lines: approved, paid, in approval, remaining.지급·구매, 선급금, 경비 청구(출장·선급금 정산). 지급 확인은 신청자·결재자가 아닌 사람이. 예산 항목별 승인·지급·결재 중·잔액. | Budget structure예산 구조 |
| Asset management자산 관리 | Working작동 | Register with specifications, purchase details, budget line, licence expiry. Assign, return, move, repair, dispose; current holder always shown.사양·구매 정보·예산 항목·라이선스 만료일 대장. 배정·반납·이동·수리·폐기 기록, 현재 사용자 표시. | Link from an approved purchase to the register승인된 구매에서 자산 등록으로 연결 |
| Local staff attendance tracking현지 직원 근태 | Working작동 To decide결정 필요 |
Monthly view built from approved leave and travel, by person. Nothing to submit.승인된 휴가·출장으로 월별·사람별 근태가 자동 생성. 따로 제출할 것 없음. | Is a daily check-in record needed?매일 출퇴근 기록이 필요한지 |
| Email setup이메일 설정 | Tested시험 완료 | Sign in with the main account; alias mail arrives in the same inbox; send as the alias. When an account is renamed, the old address becomes an alias automatically (Google standard). SPF, DKIM and DMARC pass.주 계정으로 로그인, 별칭으로 온 메일이 같은 받은편지함에 도착, 별칭으로 발신. 계정 이름을 바꾸면 옛 주소는 자동으로 별칭이 됨(Google 기본 동작). SPF·DKIM·DMARC 통과. | None없음 |
| Records kept, including changes변경 이력 포함 기록 보존 | Working작동 To decide결정 필요 |
Every action logged with person, seat and time. Edits to requests and setup logged with before and after values. Approval PDFs locked. Nightly backup of all data.모든 처리를 사람·자리·시각과 함께 기록. 신청과 설정 수정은 변경 전후 값으로 기록. 승인 PDF 잠금. 매일 밤 전체 백업. | Retention period; who may delete; a restore rehearsal보존 기간, 삭제 권한자, 복구 리허설 |
| Folder permissions; common folders and file names폴더 권한, 공통 폴더·파일명 | Tested시험 완료 Designed설계 |
Tested 19 Oct: project folders closed by default; one folder can be opened to another division; view, comment, edit or manage; restricted finance folder.10-19 시험: 사업 폴더 기본 비공개, 다른 부서에 폴더 하나만 공개, 보기·댓글·편집·관리 수준, 재무 폴더 제한. | Folder example: section 3폴더 예시는 3절 |
| Compatibility with IDCIDC 호환 | Designed설계 | Office codes ISO2 (ISO3 for joining); project codes stored as issued; optional "related project" on requests (44 public projects loaded).사무소 코드 ISO2(연결용 ISO3), 사업 코드는 원문 그대로 저장, 신청서에 "관련 사업" 선택(공개 사업 44건). | Who keeps the master project list사업 목록 정본 관리자 |
3System structure시스템 구조
Project folders: an example from the regional office (for reference)사업 폴더 예시 (ROM 사례, 참고용)
00_Project-Docs-MOU00_사업문서,MOU├─ MOU_signed_2024-03-15.pdf ├─ Project-document_v2.docx └─ Amendments
├─ MOU_서명본_2024-03-15.pdf ├─ 사업문서_v2.docx └─ 변경협약
01_Budget-Transfers01_예산,송금├─ 2025 │ └─ Transfer-01_2025-02-10.pdf └─ 2026 └─ Budget-plan_2026.xlsx
├─ 2025 │ └─ 송금-01_2025-02-10.pdf └─ 2026 └─ 예산계획_2026.xlsx
02_Finance-Accounting02_재무,회계├─ 2025 │ └─ Expense-report_Q4.xlsx └─ 2026 └─ Receipts_2026-09
├─ 2025 │ └─ 지출보고_4분기.xlsx └─ 2026 └─ 영수증_2026-09
03_Reports03_보고서├─ 2025 │ └─ Annual-report_2025_final.pdf └─ 2026 └─ Progress-report_H1.docx
├─ 2025 │ └─ 연간보고서_2025_최종.pdf └─ 2026 └─ 반기보고서_상반기.docx
04_Photos-Video-PR04_사진영상홍보└─ 2026 ├─ 2026-05_tree-planting └─ 2026-08_workshop
└─ 2026 ├─ 2026-05_식재행사 └─ 2026-08_워크숍
99_Reference99_참고자료├─ Guidelines └─ Templates
├─ 지침 └─ 서식
Drive permissions: what is possible드라이브 권한: 가능한 것
Tested on 19 and 20 Oct with test drives, test groups and an outside Gmail account.10-19·10-20 시험 드라이브·시험 그룹·외부 Gmail 계정으로 시험.
| Can할 수 있는 일 | Viewer뷰어 | Commenter댓글 작성자 | Contributor참여자 | Content manager콘텐츠 관리자 | Manager*관리자* |
|---|---|---|---|---|---|
| Open and download열기·다운로드 | ✓ | ✓ | ✓ | ✓ | ✓ |
| Comment댓글 | – | ✓ | ✓ | ✓ | ✓ |
| Add and edit files파일 추가·수정 | – | – | ✓ | ✓ | ✓ |
| Move and delete files파일 이동·삭제 | – | – | – | ✓ | ✓ |
| Share a single file파일 하나 공유 | – | – | ✓ | ✓ | ✓ |
| Share a folder폴더 공유 | – | – | – | ✓ | ✓ |
| Members and drive settings구성원·드라이브 설정 | – | – | – | – | ✓ |
* Manager is given for a whole drive only. For one folder the highest level is Content manager.* 관리자는 드라이브 전체 단위로만 줄 수 있음. 폴더 하나엔 콘텐츠 관리자가 최고 수준.
Possible가능
- Give access by account, by group, or to people outside (afocosec.org, Gmail).
- Keep each project drive closed by default, and open one folder to another division.
- Close a folder (e.g. finance) even to drive members.
- Give a viewer an end date; turn off download, print and copy for viewers.
- 계정·그룹·외부인(afocosec.org, Gmail) 모두에게 권한 부여.
- 사업 드라이브 기본 비공개, 다른 부서엔 폴더 하나만 공개.
- 재무 같은 폴더는 드라이브 구성원에게도 닫기(제한 폴더).
- 뷰어에게 만료일 지정, 뷰어의 다운로드·인쇄·복사 끄기.
With conditions조건부
- Once a folder can be opened to non-members, contributors can also share single files outside. Our plan cannot separate the two, so we rely on a rule and the activity log.
- The share box starts at "Content manager"; choose the level each time.
- 폴더를 비구성원에게 열 수 있게 하면, 참여자가 파일 하나를 밖에 공유하는 길도 함께 열림. 현재 요금제로는 둘을 나눌 수 없어 규칙과 활동 기록으로 관리.
- 공유 창의 기본 역할이 "콘텐츠 관리자"라 매번 수준을 골라야 함.
Not possible불가
- "Manager" on a single folder.
- Hiding a closed folder's name from drive members.
- Blocking only file-level sharing to outsiders (needs a higher plan).
- 폴더 하나에 "관리자" 권한.
- 제한 폴더의 이름까지 숨기기.
- 파일 단위 외부 공유만 따로 막기(상위 요금제 기능).
4Administrator's work: staff changes관리자 업무: 직원 변동
| Situation상황 | ① Admin console: account① 관리 콘솔: 계정 | ② Groups: access② 그룹: 권한 | ③ App: access and person③ 앱: 접근과 사람 |
|---|---|---|---|
| New staff member새 직원 | Add a user.사용자 추가. | Add to the office groups (grp.laos@, laos@).사무소 그룹에 추가 (grp.laos@, laos@). | Share the app with the account. Then Menu › Add staff member: person, seat and approval rights, contract and leave.앱을 그 계정에 공유. 이어서 메뉴 › Add staff member: 사람, 자리와 결재 권한, 계약과 휴가. |
| Replacement교체 | A (desk account): move the alias to the new person. B (personal account): rename the account to the new person; the old address stays as an alias.A(자리 계정): 별칭을 새 사람으로. B(사람 이름 계정): 계정 이름을 새 사람으로 변경, 옛 주소는 별칭으로 남음. | Nothing없음 | Add staff member for the new person (A: on the existing seat, tick "account reset done"; B: share the app with the new address and move the seat's rights to it).새 사람으로 Add staff member (A: 기존 자리, "계정 초기화 완료" 체크. B: 새 주소에 앱 공유, 자리 권한을 새 주소로 옮김). |
| Intern rotation (shared seat)인턴 교대 (공용 자리) | Reset the shared seat's password; add the new intern's alias, remove the old one.공용 자리 비밀번호 초기화, 새 인턴 별칭 추가·이전 인턴 별칭 삭제. | Nothing없음 | Add the intern as a person on the shared seat; each intern picks their own name in Settings.공용 자리에 인턴을 사람으로 추가, 인턴은 설정에서 자기 이름을 고름. |
| New approver or new office결재자 추가, 새 사무소 | Add the approver's account, or the office's accounts.결재자 계정 또는 사무소 계정 추가. | Create the office groups.사무소 그룹 생성. | Share the app. Setup screens: office, routes, approval rights, budget lines, holidays.앱 공유. 설정 화면: 사무소·경로·결재 권한·예산 항목·공휴일. |
5Who approves what결재와 열람
| Request type신청 유형 | Used for용도 | Approved by (now)결재 (현 설정) | Can be changed to변경 가능 | Payment confirmation지급 확인 |
|---|---|---|---|---|
| Leave휴가 | day off, sick leave, absence연차·병가·결근 | Country Manager국가 매니저 | HQ본부 | No없음 |
| Travel request출장 | work trip (costs claimed afterwards)업무 출장 (비용은 사후 청구) | Country Manager국가 매니저 | HQ본부 | No없음 |
| Request or document approval요청·문서 결재 | decision, memo, plan, report결정·메모·계획·보고서 | Country Manager국가 매니저 | HQ본부 | No없음 |
| Payment or purchase지급·구매 | pay a supplier, buy something공급자 지급, 물품 구매 | HQ본부 | Country Manager국가 매니저 | Yes있음 |
| Cash advance선급금 | cash before an activity활동 전 현금 | HQ본부 | Country Manager국가 매니저 | Yes있음 |
| Expense claim경비 청구 | refund; settle a trip or an advance환급, 출장·선급금 정산 | HQ본부 | Country Manager국가 매니저 | Yes있음 |
| Attendance근태 | No approval. Built from approved leave and travel.결재 없음. 승인된 휴가·출장으로 생성. | |||
Who can see what열람 범위
- Staff: their own requests. Personal requests (leave, travel, advances, claims) stay with the person, even after a seat handover.
- Country Manager: requests and team leave of their office.
- HQ approvers: all offices.
- Office finance seat: money requests and travel of their office.
- Administrator: everything, plus setup and the change log.
- 직원: 본인 신청. 개인 신청(휴가·출장·선급금·청구)은 자리를 인계한 뒤에도 그 사람에게만 보임.
- 국가 매니저: 소속 사무소의 신청과 팀 휴가.
- 본부 결재자: 전 사무소.
- 사무소 지급 담당: 소속 사무소의 돈 관련 신청과 출장.
- 관리자: 전체와 설정, 변경 기록.
Setting the approvers결재자 지정
- The administrator chooses the approvers for each request type and office, on the setup screens. Every change is logged.
- Today each type has one named approver. It can instead go to everyone who holds approval rights for that type; the first to act decides.
- HQ is shown as one unit. It can be split by division, so that different divisions approve different types.
- 결재자는 관리자가 정합니다. 신청 유형·사무소별로 설정 화면에서 지정하고, 바꾸면 기록됩니다.
- 지금은 유형마다 결재자 한 명을 지정해 두었습니다. 그 유형의 결재 권한이 있는 사람 누구나 결재하도록 바꿀 수도 있으며, 이때는 먼저 처리한 사람의 결정이 유효합니다.
- 본부는 하나로 적었지만, 부서별로 나눠 유형마다 다른 부서가 결재하도록 설정할 수 있습니다.
6Records kept for each request신청 한 건의 기록과 보존
The system keeps its own records rather than relying on AppSheet's built-in log, which keeps changes for only seven days on our plan.현재 요금제에서 7일만 보관되는 AppSheet 자체 기록 대신, 시스템이 직접 기록을 남깁니다.
Submitted상신
- Who: person and seat
- When: server time, shown in office time
- Urgency, deadline, files and Drive links
- 누가: 사람과 자리
- 언제: 서버 시각, 사무소 시각으로 표시
- 긴급·기한·파일·드라이브 링크
Each decision결재마다
- Who, with title and office
- The rule that allowed them to approve
- Comment
- Return, reject, recall and withdraw are recorded the same way
- 누가: 직함·사무소 포함
- 결재 근거가 된 권한 규칙
- 의견
- 반송·반려·회수·철회도 같은 방식으로 기록
Approved승인
- Ref. No. issued by the server, never reused (e.g. LA-2026-0001)
- Values frozen: days, amount, USD, leave balance before, budget left after
- Approval PDF, locked read-only
- 서버가 문서번호 발급, 재사용 없음 (예: LA-2026-0001)
- 승인 시점 값 고정: 일수·금액·USD·승인 전 잔여 휴가·승인 후 예산 잔액
- 승인 PDF, 읽기 전용 잠금
Paid지급
- Who confirmed
- Payment date and reference
- Amount booked in USD
- 확인한 사람
- 지급일과 참조번호
- 확정 USD 금액
Afterwards이후
- An edit to an approved request is flagged "Changed after approval", with before and after values
- Cancelling needs the approver's confirmation
- 승인된 신청을 고치면 "승인 후 변경" 표시와 변경 전후 값이 남음
- 취소는 결재자 확인이 필요
Kept, and for how long보존 범위와 기간
| Data sheet데이터 시트 | Everything, until an authorised person deletes it. Who that is: to decide.권한자가 지울 때까지 전부. 삭제 권한자는 결정 필요. |
| Nightly backup야간 백업 02:00–03:00 Hanoi하노이 02~03시 | All tables in one zip, with a file list linked to the previous night. Daily copies kept 30 days, Sunday copies 12 weeks, first of the month one year, 1 January indefinitely.전체 표를 zip 하나로, 전날 목록과 연결된 파일 목록 포함. 일일본 30일, 일요일본 12주, 매월 1일본 1년, 1월 1일본 무기한. |
| PDFs and attachmentsPDF·첨부 | One locked copy of each in the archive, never pruned.보관소에 잠긴 사본 1부씩, 삭제하지 않음. |
| Setup changes설정 변경 | Approvers, seats, budget lines, leave balances and request types: logged with before and after values.결재자·자리·예산 항목·휴가 잔여·신청 유형 변경을 전후 값으로 기록. |
| Nightly check야간 점검 | Lists anything that should not happen: a number used twice, an approval without a PDF, an approval by someone not authorised, the same person requesting and approving, a PDF or backup changed afterwards.있어서는 안 되는 것을 목록으로: 번호 중복, PDF 없는 승인, 권한 없는 승인, 신청자와 결재자가 같은 경우, 사후에 바뀐 PDF·백업. |
When the system itself changes시스템 자체를 바꿀 때
- Settings any time. Approvers, offices, budget lines and holidays are edited on screen by the administrator. Changes to approvers, seats and budget lines are logged.
- Structure on a set day. New fields or request types are collected, built in a separate copy of the app, tested, and released together (for example once a month).
- Fields are only added. Never renamed or deleted, so old records stay readable.
- A copy of the data is taken before every release.
- Before go-live: one full release rehearsal and one restore rehearsal.
- Who can change it: someone who can use the AppSheet editor (no programming). A data dictionary, a log of structure changes and a re-test list let a new person pick it up.
- 설정은 언제든. 결재자·사무소·예산 항목·공휴일은 관리자가 화면에서 수정. 결재자·자리·예산 항목 변경은 기록됨.
- 구조는 정한 날에. 새 입력 항목이나 신청 유형은 모아서 앱 사본에서 만들고 시험한 뒤 한 번에 반영 (예: 월 1회).
- 항목은 추가만. 이름을 바꾸거나 지우지 않아 과거 기록을 계속 읽을 수 있음.
- 반영할 때마다 먼저 데이터 사본 생성.
- 운영 전: 반영 리허설 1회, 복구 리허설 1회.
- 누가 바꾸나: AppSheet 편집기를 다룰 사람(코딩 없음). 데이터 사전·구조 변경 기록·재시험 목록으로 새 담당자가 이어받음.
7Capabilities and limits가능한 것과 한계
Can가능
- Requests and approvals for small officeswith full history, Ref. No. and approval PDFs.
- Records kept until deliberately deletedthrough our own history, change log, nightly backup and locked PDFs.
- Staff changes without losing mail or recordsthrough accounts, aliases and groups.
- A new office without changing the appby adding rows in the setup screens.
- Folder access by groupat view, comment, edit or manage level.
- Phone and computerwith the same app and the same sign-in.
- 소규모 사무소의 신청·결재전체 이력, 문서번호, 승인 PDF.
- 의도적으로 지울 때까지 기록 보존자체 이력, 변경 기록, 야간 백업, PDF 잠금.
- 직원이 바뀌어도 메일·기록 유지계정, 별칭, 그룹.
- 앱 수정 없이 사무소 추가설정 화면에 행만 추가.
- 그룹 단위 폴더 권한보기·댓글·편집·관리 수준.
- 휴대폰과 컴퓨터같은 앱, 같은 로그인.
Can, with conditions조건부 가능
- App emails reach afocoproject.org onlyso HQ approvers need an account here.
- The app can change while in usebut changes to its structure follow the release routine in section 6.
- Comfortable for a handful of officesand if volume grows a lot, the data can move from a Sheet to a database.
- 앱 메일은 afocoproject.org로만본부 결재자도 이 도메인 계정이 필요.
- 사용 중에도 앱 수정 가능단, 구조 변경은 6절의 반영 절차를 따름.
- 사무소 몇 곳 규모엔 충분규모가 크게 늘면 데이터를 시트에서 데이터베이스로 옮길 수 있음.
Cannot불가
- A fixed version for users while the next is builtThat is an Enterprise Plus feature. We build in a separate copy instead.
- Database guaranteesNo transactions or enforced links; if two people save the same row at once, the later save wins. Kept small by one rule: nobody edits the data sheet directly.
- Certificate-based e-signatureAn approval in the app is a recorded approval; its weight comes from our internal rules.
- 사용자용 고정 버전과 개발 버전 분리Enterprise Plus 기능. 대신 별도 사본에서 개발.
- 데이터베이스 수준 보장트랜잭션·참조 무결성 없음. 같은 행을 동시에 저장하면 나중 저장이 남음. "데이터 시트 직접 수정 금지" 규칙으로 보완.
- 인증서 기반 전자서명앱 승인은 기록된 승인이며, 효력은 내부 규정에 따름.
8Decisions needed결정 필요
| Question질문 | Decision결정 | |
|---|---|---|
| D1 | How should accounts be named: A by desk, with the person's name as an alias, or B by person, renamed at a handover? (see below)계정 이름을 어떻게 짓나: A 자리 이름 + 사람 이름 별칭, B 사람 이름, 교체 때 이름 변경? (아래 비교) | |
| D2 | Does HQ need to be divided (for example by division), and should approval rights be split to match?본부 부서 등 구분이 필요한지, 그에 따라 결재 권한도 세부 구분해야 하는지? | |
| D3 | Who approves office leave, travel and general requests: the Country Manager or HQ?사무소 휴가·출장·일반 요청의 결재자: 국가 매니저인가, 본부인가? | |
| D4 | When should actual use begin?실사용 시작일은 언제로 할까요? |
D1: how accounts are namedD1: 계정 이름 규칙
| A. Desk account, person's name as an alias (test version)A. 자리 계정 + 사람 이름 별칭 (시험판 방식) | B. Personal account, renamed at a handoverB. 사람 이름 계정, 교체 때 이름 변경 | |
|---|---|---|
| Example예 | laos.finance@ with the alias mary.major@laos.finance@ + 별칭 mary.major@ | mary.major@mary.major@ |
| At a replacement교체 때 | Move the alias to the new person; the account stays.별칭만 새 사람으로, 계정은 그대로. | Rename the account to the new person; the old address stays as an alias automatically.계정 이름을 새 사람으로 변경, 옛 주소는 자동으로 별칭. |
| Mail, Drive, groups메일·드라이브·그룹 | Stay with the desk account.자리 계정에 남음. | Stay with the account; they move with the rename.계정에 남아 이름 변경과 함께 이동. |
| The app앱 | Nothing to change: the desk keeps its rights.바꿀 것 없음: 자리가 권한을 유지. | Share the app with the new address and move the desk's rights to it in setup; earlier requests stay under the old address.새 주소에 앱 공유, 설정에서 자리 권한을 새 주소로 옮김. 이전 신청은 옛 주소로 남음. |
| Outside contacts외부 연락처 | Write to a stable desk address or the person's alias.고정된 자리 주소나 사람 별칭으로. | Write to the person; the address changes with the person (the old one still delivers).사람 주소로. 사람이 바뀌면 주소도 바뀜 (옛 주소로도 계속 도착). |
| Limits제약 | One extra step (alias) at each change; aliases are free.변동 때마다 별칭 작업 한 번, 별칭은 무료. | Each rename leaves an alias (up to 30 per account); an old address can be given to someone else only after its alias is removed.이름을 바꿀 때마다 별칭이 하나씩 쌓임 (계정당 30개까지), 옛 주소를 다른 사람에게 주려면 별칭부터 삭제. |
Either way: office contact group laos@ (letters, website), member group grp.laos@ (drive access), interns share laos.intern@ with their own aliases.어느 쪽이든: 사무소 대표 그룹 laos@ (공문·웹사이트), 구성원 그룹 grp.laos@ (드라이브 권한), 인턴은 laos.intern@을 함께 쓰고 각자 별칭.