town/external/cmd/signup
vilmibm 0764534fed rearrange things, add locking writer 2023-11-01 02:44:22 +00:00
..
README.md rearrange things, add locking writer 2023-11-01 02:44:22 +00:00
main.go rearrange things, add locking writer 2023-11-01 02:44:22 +00:00
signup rearrange things, add locking writer 2023-11-01 02:44:22 +00:00
thoughts.md rearrange things, add locking writer 2023-11-01 02:44:22 +00:00

README.md

town signup

The point of this command is to enable signing up for tilde.town via an ssh connection. It is designed to be run when join@tilde.town is SSH'd to.

to-dos

  • finish this command
    • interactive guts
    • logging
    • write answers to disk
    • take out sidebar
    • add /help
    • make copy clearer (that you say whatever and then type verb)
    • enter to send
    • splash screen - put off
    • easter egg commands - put off
    • inactivity timer(?) - put off
  • review tool
  • actual account creation
  • backlog
    • get a manual dump from psql of json
    • convert into files in the review directory

configuration

On disk assumptions:

  • /town/var/signups exists and is owned by user join and group admin
  • /town/var/signups/log exists and is owned by user join and group admin

Assumes the following has been run:

sqlite3 /town/var/signups/signups.db < /town/src/town/sql/create_signups_table.sql
sudo chown join:admin /town/var/signups/signups.db

It assumes, in sshd_config:

Match User join
        ForceCommand /town/src/town/cmd/signup/signup
        PubkeyAuthentication no
        KbdInteractiveAuthentication no
        PasswordAuthentication yes
        PermitEmptyPasswords yes
        DisableForwarding yes

and in /etc/pam.d/sshd:

auth [success=done default=ignore] pam_succeed_if.so user ingroup join

initial thoughts

I need a script for how this interaction should go. It should feel more organic and fluid than just filling out a form. It shouldn't, however, take more than 10 minutes to get through stuff. The end result is to collect:

  • an email address
  • how a user found out about the town
  • if they have a referral from an existing member
  • what interests them about the town
  • any links to personal websites or social media

A given is that the applicant is interacting with a "host" that guides them through the process. Should there be more than one host?

How many rooms should there be? 1? more?

in terms of data collection, I intend to just save the transcript of their interaction instead of more structured data. The only real structured data are email and referral.

another idea/thought/dream:

the whole point of this is to spatialize a form. it's a form! a set of questions and corresponding textarea elements. but in order to trigger self reflection -- as well as a feeling of being seen by another (in a good way) -- i want to turn the form into a shape. i'm thinking about this like the room in Eclipse Penumbra:

(For the Hollow Head was drug paraphenalia you could walk into. The building itself was the syringe, or the hookah, or the sniff-tube)

so, spatialized, every room is a question. the rooms take shape as a linear script the user moves through by:

  1. answering a question
  2. executing a verb

and finally at the end, a verb to confirm submission.

author

vilmibm