Skip to content
Brett edited this page Oct 17, 2022 · 2 revisions

Introduction

This spec define the requirements of the User Offers (UO) application.

Scope

The objective of this app is to provide targeted offers to users based on the following demographics:

  • Age
  • Gender

Value

Users will quickly get any offers the app believes to be relevant to them, preventing users from having to search through them manually.

General description

The app will:

  • Let users register
  • Provide offers based on their user profile from registration

Functional Requirements

User registration

Users must be able to register with the app with the following fields:

  • Username
  • First Name
  • Last Name
  • Birthdate
  • Gender
  • Password

The users will be stored in the database with hashed passwords.

User login

Users should be able to sign in with their user name and password.

Offers page

Authenticated users should be taken to an Offers page, where they will be presented with offers targeted to their age and gender.

Interface requirements

User Interface

Login Page

A page where a user enters their username and password to authenticate them

Offers Page

Lists the offers that are targeted for the currently authenticated user.

Hardware Interface

A simple web server that supports containerization.

Software Interface

  • Ruby and Ruby on Rails (used to develop the app)
  • PostgreSQL (stores entities for the app)
  • Docker (used to build and deploy the app)

Non-functional requirements

Security

Passwords

Passwords will be hashed when stored.

CSRF

All HTTP entry points to the application will have a required security token to ensure that the requests don't harm the app.