Data structure, 3 tables in same spreadsheet : 1) user personal info db. email, address, telephone number. 2) activity db, name of activity, date, max\_applicant, applicant\_so\_far, final\_apply\_date. 3) activity\_applicant: email of applicant, fill\_form\_date, approved by , approved date . each activity has own table. Main flow: 1) Applicant logged-in with Google account. 2) for first time applicant, pop up permission window to allow our script to access Google account. 3) once the user approve the script, for first time applicant , go to Personal Detail Form. after fill up, go to Activity Selection Form. go to Activity Selection Form directly for old applicant. 4) on Activity Selection Form, display only the active activity (final\_apply\_date less than today ) . if activity is full, (applicant\_so\_far more than max\_applicant) , warning message is shown . 5) when user choose an activity and click apply, manager will get noticed via email. new table will be created for the first application of a activity. 6) show user message: thanks for applying, please wait for approval. 7) an email with another Google form link will be sent to the manager, the manager approvals or rejects by click a button on the form. see [url removed, login to view]\_report\_approval for sample code. 8) applicant get noticed via email and SMS(optional) . subflow: cancellation of an application. 1) user logged-in with Google account. 2) enter "the activity i am attending" page. 3) click cancel. 4) manager get noticed, applicant\_so_far minus 1.