Details for the Game World Epic milestone.

Acceptance Criteria

A server running permanently that one can telnet to, log in to, and see basic information about the running environment.

User Stories

  • 1.1 - Running Server
    • As a player I want to be able to log in any time so that I can play on my own schedule
  • 1.2 - Login
    • As a player I want to have my own unique name and password for logging in so that only I can have access to my characters
  • 1.3 - Where am I?
    • As a player I want to see a brief description of my location so that I know what I am connected to
  • 1.4 - User Account Creation (server)
    • As a player I want to create a user account by connecting to the server so that I can play the game (even if I'm not on the development team)
  • 1.5 - User Account Creation (website)
    • As a player I want to create a user account via the website so that I can play the game

Acceptance Criteria

  • 1.1 - Running Server
    • When I telnet to port 4848, I receive a prompt which says Login:
    • If I am idle for longer than 600 seconds, I am disconnected.
  • 1.2 - Login
    • At the Login (type new to create new account): prompt, I type guest
    • I receive a Password: prompt
    • I type guest and am logged in
    • If I type any other combination of username and password, I get an error message of Invalid login., and returned to the Login: prompt
    • If I enter an invalid username/password combination more than 3 times, I am disconnected.
    • If I attempt to login and I am already logged in elsewhere, the other login session is disconnected
    • When I am logged in, I receive a message saying Welcome, guest.
    • Repeat steps 1-7 for username guest2 and password guest2
  • 1.3 - Where am I?
    • After login, I get a description which reads You are in the formless void known as FaerieMUD 1.0.\n\n followed by a prompt of FaerieMUD>.
  • 1.4 - User Account Creation (server)
    • At the Login (type new to create new account): prompt, if I type new I get a message saying Creating new user
    • I am prompted for a username: Please enter a username:
    • If I try to create an account that already exists, I am prompted A user by that name already exists, and returned to step 2.
    • I am prompted for an email address: Please enter your email address (your password will be sent there):
    • If I enter an email address for which a user account already exists, I am prompted A user with that email address already exists. Please use only one user account at a time. and returned to step 1.
    • The username and email address I entered are now reprinted so that I can verify their correctness; I am prompted for confirmation: Is this correct (Y/n):
    • If I type Y, y or press enter, a random password is emailed to the address I provided, and then I am returned to the Login: prompt.
    • If I type N or n, I am returned to step 2.
    • If I type anything else, I am returned to step 6.
    • I should be able to execute the steps in 1.2 - Login for the username I have chosen and password I was emailed

Tasks

  • 1.1 - Running Server (25 scenes)
    • 1.1.1 Bug in ListenerConnectEvents? (25) - Figure out where the handoff between connection and login prompt is failing.
  • 1.2 - Login (3 scenes)
    • 1.2.1 - Modify default login questionnaire (1) - Modify the default login questionnaire to send an output event as described before swapping itself with the command shell.
    • 1.2.2 - Add user accounts (2) - Add the test user accounts to the objectstore.
  • 1.3 - Where am I? (1 scene)
    • 1.3.1 - Modify welcome message and prompt (1) - Add a "Welcome" message and the correctly worded prompt as detailed in the acceptance criteria for 1.2 and 1.3.
  • 1.4 - User Account Creation (server) (22)
    • 1.4.1a - Sub-questionnaires (5) - Modify Questionnaire to allow for sub-questionnaires.
    • 1.4.1b - Create Questionnaire (10) - Create a sub-questionnaire to meet the acceptance criteria. Store the newly created user account data in the objectstore.
    • 1.4.2 - Emailer (7) - Write a small helper program to email a random password to a given email address, together with a pre-generated email. The password should be entered into the objectstore against the correct email address. A program needs created which will be run through cron; this will check the objectstore for new user accounts that are awaiting passwords and email them appropriately.

See also Process

Scotus - 01 May 2004