As an unregistered and unauthorized user, I want to be able to sign up for the website via a sign-up form.
When I'm on the /users/register page:
I would like to be able to enter my first name, last name, email, and preferred password on a clearly laid out form.
I would like the website to log me in upon successful completion of the sign-up form.
So that I can seamlessly access the site's functionality
After completion of the sign-up form, a portfolio will be created and associated with my account. Then I would like to be redirected to the portfolio page to start adding stocks
When I enter invalid data on the sign-up form:
I would like the website to inform me of the validations I failed to pass, and repopulate the form with my valid entries (except my password).
So that I can try again without needing to refill forms I entered valid data into.
Log in
As a registered and unauthorized user, I want to be able to log in to the website via a log-in form.
When I'm on the /users/login page:
I would like to be able to enter my email and password on a clearly laid out form.
I would like the website to log me in upon successful completion of the log-in form.
So that I can seamlessly access the site's functionality
After completion of the log in form I would like to be redirected to the portfolio page.
When I enter invalid data on the log-in form:
I would like the website to inform me of the validations I failed to pass, and repopulate the form with my valid entries (except my password).
So that I can try again without needing to refill forms I entered valid data into.
Demo User
As an unregistered and unauthorized user, I would like an easy to find and clear button on both the /signup and /login pages to allow me to visit the site as a guest without signing up or logging in.
When I'm on either the /signup or /login pages:
I can click on a Demo User button to log me in and allow me access as a normal user.
So that I can test the site's features and functionality without needing to stop and enter credentials.
Log Out
As a logged in user, I want to log out via an easy to find log out button on the navigation bar.
While on any page of the site:
I can log out of my account and be redirected to a page displaying recent Stories.
So that I can easily log out to keep my information secure.
Create Portfolio
When I create an account, a new portfolio will be made for me.
I will be able to add stocks to the new portfolio.
Viewing Dashboard + Portfolio
As a logged in user, I want to be able to view the portfolio that I have created.
When I'm on the / page:
I can view the content of the portfolio as well as the associated stocks.
So that I can view which stocks are helping my portfolio.
I can also view recent news and watchlists on my dashboard.
Updating Portfolio
As a logged in user, I want to be able to edit my portfolio by clicking an Edit button associated with the portfolio anywhere that portfolio appears.
When I'm on the home page:
When I click the "Edit" button a modal confirmation will be shown
I can click "Confirm Edit" to make permanent changes to portfolio I have posted.
So that I can add or remove stocks associated with that portfolio and change the name.
Viewing Stocks
As a logged in user, I want to be able to view stocks that I can buy.
When I'm on the /stocks page:
I can view all available stocks.
I can see how well each stock is doing.
I want to be able to view a specific stocks and its associated details.
When I'm on the /stocks/:id page:
I can view the details of the stock.
So that I can make a decision add the stock to a portfolio.
I can also buy or sell stocks from stocks details page.
Create Watchlist
As a logged in user, I want to be able to create a watchlist.
When I'm on the /watchlists/new page:
I can create and submit a new watchlist.
Viewing Watchlist
As a logged in user, I want to be able to view watchlists that I have created.
When I'm on the /watchlists page:
I can view all my watchlists.
I want to be able to view a specific watchlist and its associated stocks.
When I'm on the /watchlists/:id page:
I can view the stocks of the watchlist.
So that I can see any changes in specific stocks faster.
Updating Watchlist
As a logged in user, I want to be able to edit my watchlists by clicking an Edit button associated with the watchlist anywhere that watchlist appears.
When I'm on the /watchlists or /watchlists/:id pages:
When I click the "Edit" button a modal confirmation will be shown
I can click "Confirm Edit" to make permanent changes to watchlists I have made.
So that I can add or remove stocks associated with that specific watchlist.
Deleting Watchlist
As a logged in user, I want to be able to delete my watchlists by clicking an Delete button associated with the watchlist anywhere that watchlist appears.
When I'm on the /watchlists or /watchlists/:id pages:
When I click the "Delete" button a modal confirmation will be shown
I can click "Confirm Delete" to permanently delete a watchlist I have posted.
So that when I realize there's nothing important to follow in that watchlist, I can delete it.
Viewing search
As a logged in user, I want to be able to search for available stocks.
When I'm on the /search page:
I can view the results from the search bar input.
I want to be able to view a specific stock and its details after clicking a result.
Create Transaction
As a logged in user, I want to be able to create a transaction.
When I buy or sell a stock:
A transaction will be created.
Viewing Transaction
As a logged in user, I want to be able to view transactions that I have made.
When I'm on the /transactions page:
I can view all my transactions.
I want to be able to view a specific transaction and its details.
When I'm on the /transactions/:id page:
I can view the price, type, and date of the transaction.