In computer programming a user story is one or more sentences in the everyday or business language of the end user that captures what the user wants to achieve. User stories are used with Agile software development methodologies for the basis of what features that can be implemented. Each user story is limited, and should fit on a small paper note/card to ensure that it does not grow too large. The user stories should be written by or for the customers for a software project and are their main instrument to influence the development of the software. User stories could also be written by developers to express non-functional requirements (security, performance, quality, etc.). 
Now talk about non functional requirement. In systems engineering and requirements engineering, a non-functional requirement is a requirement that specifies criteria that can be used to judge the operation of a system, rather than specific behaviors. This should be contrasted with functional requirements that define specific behavior or functions. The plan for implementing functional requirements is detailed in the system design. The plan for implementing non-functional requirements is detailed in the system architecture.
Non-functional requirements are often called qualities of a system. Other terms for non-functional requirements are “constraints”, “quality attributes”, “quality goals”, “quality of service requirements” and “non-behavioral requirements”. Qualities, that is non-functional requirements, can be divided into two main categories:
- Execution qualities, such as security and usability, which are observable at run time.
- Evolution qualities, such as testability, maintainability, extensibility and scalability, which are embodied in the static structure of the software system. 
User stories generally follow the following template:
"As a <role>, I want <goal/desire> so that <benefit>"
but the shorter version is commonly used as well:
"As a <role>, I want <goal/desire>"
Some examples are:
As a user, I want to search for my customers by their first and last names.
As a non-administrative user,
I want to modify my own schedules but not the schedules of other users.
As a mobile application tester,
I want to test my test cases and report results to my management.
The application begins by bringing up the last document the user was working with.
As a user closing the application,
I want to be prompted to save if I have made any change in my data since the last save.
Upon closing the application, the user is prompted to save (when ANYTHING has changed in data
since the last save!).
As a user closing the application,
I want to be prompted to save anything that has changed since the last save
so that I can preserve useful work and discard erroneous work.
The consultant will enter expenses on an expense form. The consultant will enter items
on the form like expense type, description, amount, and any comments regarding the expense.
At any time the consultant can do any of the below options.
(1) Once this is completed the consultant will "Submit". If the expense is under fifty (<50),
the expense will go directly to the system for processes.
(2) In the event the consultant has not finished entering the expense, the consultant may
want to "Save for later". This instance should then be displayed on a list (queue) for
consultant with the status of "Incomplete".
(3) In the event the consultant decides to clear the data and close the form the consultant
will "Cancel and exit". This instance will not be saved anywhere.