# Phase 1C manual test script: people and engagement

For a non-developer. About 35 minutes. Same addresses and logins as the earlier scripts:

**Website:** http://localhost/church_acct_app/public
**Staff app:** http://localhost/church_acct_app/public/app
**Logins** (top of `database/seeders/TobasSeeder.php`): **editor@toprc.test** (events, website),
**ikeja.pastor@toprc.test** (members, prayer requests, no two-factor step), **hq.admin@toprc.test**
(everything; two-factor).

If the sample events and prayer requests are missing, a developer runs
`php artisan db:seed --class=WebsiteEngagementSeeder`.

## A. Events on the website

1. [ ] Menu › **Events**: upcoming events with dates, places taken and **Book a place** buttons.
   Choose a branch in **Branch**: the list narrows.
2. [ ] Click **Calendar**: a month grid with events on their days. Use ‹ › to change month.
   On a phone (or a narrow window) the month becomes a list of days that have events.
3. [ ] Open **Couples Fellowship Dinner**. Book 2 places with your email and tick the agreement.
   You land on **Your ticket**: a QR code, a ticket code, "party of 2".
4. [ ] **Add to calendar** downloads a calendar file; **Google Calendar** opens a pre-filled event.
5. [ ] Go back to the event page: places taken went up by 2.
6. [ ] Copy the ticket page's address, remove everything from `?signature` onwards and open it: "403"
   (nobody can guess someone else's ticket).
7. [ ] On the ticket, **I cannot come: cancel my booking**, confirm: "Your booking is cancelled".

## B. Events in the staff app (editor@toprc.test)

8. [ ] **Events** › **New event**: title "Choir rehearsal", a date next week, **Repeat: Every week**, 4.
   The button says **Create 4 events**. Create: four events appear, marked "repeating".
9. [ ] Open the first one › **Edit**: change the title, tick **Make the same changes to the 3 later
   dates**, save. All four have the new title. **Open registration** on one: it appears on the website.
10. [ ] Book a place on the website (step 3), then in the staff app open that event › **Door scanner**.
    Type the ticket code and press **Check in**: "Welcome, … ". Type it again: "already checked in".
    On a phone with the site on https, **Start the camera** and point it at the ticket's QR code.

## C. Prayer

11. [ ] Menu › **Prayer**: the prayer wall, with an "Answered" mark on one request. Press **I prayed**
    on one: the count goes up by one and the button says "Prayed". Reload: it stays "Prayed".
12. [ ] Send a request with your name, email, and **Others may pray too** ticked. It does not appear yet.
13. [ ] Send another without ticking **Others may pray too**.
14. [ ] As **hq.admin@toprc.test**: **Prayer requests**. Both are listed. Open the second (private) one
    and switch on **Show on the public prayer wall**: it refuses (the sender did not ask). Open the
    first, switch it on, save: it is on the wall with your first name only, no email.
15. [ ] As **editor@toprc.test** there is no **Prayer requests** menu item. As
    **ikeja.pastor@toprc.test** the list shows only requests where Ikeja was chosen.
16. [ ] On the **Live** page, send a prayer request: it arrives in **Prayer requests**, not Messages.

## D. Newsletter

17. [ ] At the bottom of any page, subscribe with an email address and tick the box: "Almost done:
    check your inbox". (Locally, the email is in the Messages log: staff app › Messages & statements.)
18. [ ] Open the confirmation link from that email: "You are subscribed".
19. [ ] As hq.admin or the editor: **Website › Newsletter subscribers** lists you as Subscribed.
    **Download subscribed (CSV)** downloads the list. Try **New subscriber** without ticking the
    agreement box: it refuses.

## E. Members (ikeja.pastor@toprc.test reads; hq.admin@toprc.test changes)

20. [ ] **Member groups**: the pastor sees "House fellowship: Ikeja" but not the church-wide choir.
21. [ ] As hq.admin: **New group** "Ushers", then **Add members**: type a name, tick, add. Open a
    member: the **Groups** line shows Ushers; **Change** lets you untick it.
22. [ ] **Members** › choose the group in the filter, then **Export**: a spreadsheet of those members
    with their consent columns.
23. [ ] Edit a member: set **Marital status** to Married, then a **Wedding anniversary** a few days
    ahead, and a date of birth for another member that is today (any year).
24. [ ] **Members › Birthdays**: both appear. As hq.admin, tick **Email a list each morning**, choose
    yourself, tick **Send members a greeting**, save. (The list and greetings go out at 7 am; a developer
    can run `php artisan members:celebrations` to see them now in the Messages log.)

## F. Broadcasts (hq.admin@toprc.test)

25. [ ] **Broadcasts**: choose **Groups** › Church choir, **SMS**. The box says how many of the choir can
    be reached (only members who agreed to SMS). Click the **Sunday service reminder** template, then
    **Send now** and confirm. It appears under **Sent**, and each message is in Messages & statements.
26. [ ] Choose **Newsletter subscribers**: the channel switches to email. Send a short newsletter: the
    message in the Messages log ends with an unsubscribe link.
27. [ ] Open that unsubscribe link: a page with one **Unsubscribe** button. Press it: "You are unsubscribed".

## G. Member portal

28. [ ] Switch the portal on (Members page, as hq.admin), sign in as a member with an email on record
    (the one-time code is in the Messages log locally), and open **Church life**: your event bookings
    (booked with the same email), ministries with **Join**, a prayer box, and downloads.
29. [ ] As the editor: **Website › Member downloads** › New: choose a PDF from the media library, save.
    It appears under **Downloads** in the portal.

## Known limits of 1C

- WhatsApp is not offered for broadcasts (Meta only allows pre-approved templates).
- Prayer requests are kept until deleted; the retention period is an open question (DECISIONS.md).
- Monthly repeating events fall on the same date each month ("the second Sunday" is not offered).
- Translations of the new portal and menu wording need a native speaker's review.
- Two screens could not be opened in the developer's browser check because every login that reaches
  them needs a two-factor or one-time code: **Broadcasts** and the portal's **Church life** page. Their
  server side is covered by automated tests; please look at both in steps 25 to 28.
