Coder Social home page Coder Social logo

money-tree's People

Contributors

abdulmansour avatar alessandro100 avatar amansourcoveo avatar arthur-del avatar dpigeon avatar espressocode avatar marwan-ayadi avatar razine-bensari avatar wltrf avatar

Stargazers

 avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

money-tree's Issues

Create domain diagram

As a developer I would like to create a domain diagram so I can better explain my system

https://en.wikipedia.org/wiki/Domain_model

Acceptance Criteria

  • The domain model will provide sufficient abstraction to give a high level overview of the system
  • The domain model will be drawn with draw.io (unless there is a good reason to use something else)
  • The domain model file will be added in the 'Software Architecture' folder in the google drive

Determine the fit with GO and graph database (NEO4j) vs relational database

As a developer I want to know how supported GO works with graph databases and relational database to make a more informed decision on what technology to use.

Acceptance Criteria

  • A detailed solution proposing a database technology that works best with GO as well as our use case
  • The proposed solution written in the research document in the google drive

Determine how to collect user performance information / logs effeciently

As a developer I want to know the best way to collect performance information / user logs to know about and fix existing user issues

Description of the requirement
(Develop code in your app or use tools for collecting user
session recordings. If your software does not have UI, but it is a service, you can record service
logs using logging libraries, and perform Load and Stress testing. Analyze the collected data to
find ways to improve the UI experience or service performance)

Question

Acceptance Criteria

  • A solution that will allow us to get user performance is proposed
  • A solution that will allow us to get user logs efficiently is proposed
  • Determine the key metrics that we need to log
  • A suitable solution that fits our needs is proposed in the research folder in the google drive

Security

Focuses on confidentiality of user information and measures to provide a safer user experience

Edit profile information

As a user I would like to edit my profile information to show my latest thoughts

Acceptance Criteria

  • Ability to edit personal biography
  • Ability to modify personal profile picture

Market Information

Focuses on the market which offers the stocks to be purchased and sold

Determine best method to AnalyzingCode Quality and create Security Report

As a developer I want to research the best method to create code analysis and security reports so future code stays clean and accountable for

Acceptance Criteria

  • A proposed solution detailing why the chosen technology was selected
  • The above answer added into the research document in the google drive

Availability of Stock Market

As a user I want to know if the stock market is open and when it is closed

*Note: New York Stock Exchange (NYSE) and the Nasdaq Stock Market (Nasdaq), are 9:30 a.m. to 4 p.m eastern time on weekdays. Nasdaq and the New York Stock Exchange also maintain pre-market trades from 4:00 a.m. to 9:30 a.m ET and after-hours trading from 4:00 to 8:00 p.m ET, only on weekdays and is closed on weekends.

https://www.investopedia.com/ask/answers/05/saleafterhours.asp

Acceptance Criteria

  • User is notified when the stock market is closed and when it is opened
  • User is notified of greater risk trading when market is closed

image

View user transactions

As a user I would like to see all my transactions and other user's transactions to get information on new stocks while viewing my history

Acceptance Criteria

  • User will be able to see their own transactions of completed buy / sell orders
  • User will be able to see their own transactions of pending buy / sell orders
  • User will be able to see other user's transactions of completed buy / sell orders
  • Transaction information must contain: date transaction completed, company name, average purchase cost per share, number of shares bought, total purchase cost, order type (buy/sell), state if it's pending
  • On clicking on the transaction, should redirect user to the stock detail page

Example of the information:
September 14 2020
Apple (AAPL)
250$ cost per share
5 shares
1250$ total cost
buy
pending

Initialize boilerplate backend code

As a developer I want to setup the boilerplate backend code so other developers can build on top of it

Acceptance Criteria

  • The backend files should be stored in a folder named 'backend' (frontend and backend in the same repository)
  • The backend should be initialized using the latest version of the GO language
  • The most suitable framework for building a REST API GO applications should be implemented

Stock Information

Focuses on market data related to a single stock, as well as the social network revolving around that stock

Display Risk Status Based on Volatility

As a user I want to be notified if the stock is volatile (high, medium, low risk)

*Note: Need to define what is high, medium, low (is it provided by the api or need to compute based on historical data)

Acceptance Criteria

  • Able to see high risk in red, medium risk in yellow, low risk in green (or other color pallet)

Search a user by username

As a user I would like to search for another user by username

Acceptance Criteria

  • When searching for a user, the textbox should attempt to autofill / recommend existing users
  • If no users are found in the search, return result 'No users matching'
  • When searching for a user, in the autofill box, it should display the user's profile picture and name
  • When the searched user is selected, I would like to see more information on that user

Screen Shot 2020-09-15 at 9.52.26 AM.png

Create pull request (PR) template in Github

As a developer I would like to create a pull request template so that we have a uniform way of reviewing code

Note: You might have to contact @DPigeon to create templates as he is the repo admin

Acceptance Criteria
As a developer, when I make a pull request there should be a set of information I need to fill in (description, user story, etc)
A pull request should require at least one person to review the code before it being accepted

Display Stock Industry

As a user I want to know the stock belongs to which industry ex: mining, tech, pharma...

Acceptance Criteria

  • Able to see which industry the stock belongs to
  • e2e test is written

Screen Shot 2020-11-02 at 2 20 20 PM

Create bug reporting template in zenhub

As a developer I want a standardized way to fill out a bug report so I don't forget any crucial information.

Note
To do this you might have to contact @DPigeon as he is the repo admin

Acceptance Criteria
When making a bug report, I should be able to select a pre-made template

Time series graph of stock

As a user I want to be able to see and interact with a time-series chart of a specific stock

Acceptance Criteria
-Able to see historical data for different time ranges ex: (1d, 5d, 1m, 3m, 6m, 1y)
-Able to see current price
-Able to see the volume traded for a time period
-Able to interact ex: (zoom in, draw lines)

btc_chart.PNG

image

Determine best hosting service

As a developer I want to know the best place to host my application so other users will be able to access it outside of my computer

Questions
[Backend] For our development environment (UAT) wouldn't it be ok to use a service with a free tier? For our production environment we will need a paid service as it will be client facing - Alessandro

Acceptance Criteria

  • Propose the best hosting for an Angular application. Explain why it was chosen and how it fits our needs for UAT and production
  • Propose the best hosting solution for a GO application. Explain why it was chosen and how it fits our needs for UAT and production
  • Determine if we will have funding from Concordia
  • Answer all the above in the 'research' document in the google drive

Account Logout

As a user I would like to logout of my account so that the next person to access the website won't have my information

Acceptance Criteria

  • The user should have the ability to logout of the application
  • They will be redirected to a stateless page (initial page)
  • Once logged out, they should not be able to view any of their account information

Toggle What Information Is Viewable

As a user I want to be able to display or hide any information that is public, by making it private; ex: transactions on given stock are hidden to the public and not viewable on my user feed

Acceptance Criteria

  • A transaction made private is not viewable by other users
  • A private transaction is still viewable by the user

React to transaction with an emoji?

As a user I would like to react to a follower's transaction through the use of emoji to express myself better

Example:
Lets say someone I follow buys 300 shares of SNC Lavalin, it will appear on my timeline. I know that company is corrupt and on the verge of bankruptcy, so I can put a laughing emoji.

I think it ads a bit more life to the application

Acceptance Criteria

  • TBD if feature goes through

Initialize boilerplate frontend code

As a developer I want to setup the basics of the project so we can build on top of it

Notes
Good documentation to help out: https://angular.io/cli/new

Acceptance Criteria

  • A basic angular application should be initialized in a folder named 'client' (as we are using the same repo for frontend / backend)
  • The angular application should be of version 10 using typescript 4
  • The angular application should be initialized using SCSS
  • The angular application should be initialized with routing

User Authentication

As a user I would like to securely access my account information so no one can access my account

Display List of Top Investors

As a user I want to be able to see the top investors on MoneyTree that are invested in the stock so that I can follow them and get better insights

Acceptance Criteria

  • List of the top n users invested in the stock

image

Display Important Fundamental Statistics

As a user I want to be able to see fundamental stats concerning the stock (market cap, PB Ratio, PE Ratio, EPS, Dividend +more)

Acceptance Criteria

  • Able to see market cap
  • Able to see PB Ratio
  • Able to see PE Ratio
  • Able to see EPS
  • Able to see Dividend
  • more

Image from iOS (10)

Screen Shot 2020-11-02 at 2 21 52 PM

Add Coding / Git standards to github repository

As a developer I would like to know the coding standards of the repository so I can write cleaner code

Note
@arthur-del you can refer to what we did in our previous project (390)

Acceptance Criteria
The coding / git standards must be visible to all the coders in the repository

Propose DevOps pipeline

As a developer I would like to know the best solution to implement devops into our workflow so that good quality code passes and bad code get filtered automatically

Notes
The acceptance criteria is based on my understanding of devops, if there is something conflicting / something that doesn't make sense, let me know and we can come to a solution - Alessandro

Acceptance Criteria

  • A technology is chosen and is backed up (jenkins, travis, github actions, etc)
  • A flow is proposed and an explanation why is written. (flow example: lint -> test -> build -> etc)
  • The proposal takes into account different environments (example: when pushing code on dev environment -> deploy on UAT, when PR gets accepted into master -> push onto prod environment)
  • The above solution is added into the research document in google drive

Display Stock Price

As a user I want to be able to see the current price of a stock so I see if I want to buy or sell

Note:

  • Don't worry about the stock exchange and the risk for this story
  • Don't worry about displaying the right information in this story, getting the data will be done in another story

Acceptance Criteria

  • Display the current price of the stock
  • Display the daily change of the stock
  • Display the title of the stock
  • Display the logo of the stock
  • The ticker of the stock (AC) must route to the correct stock page ex: money-tree/stock-details/AC (this is an example)
  • If the daily change is up, the text must be green
  • If the daily change is down, the text must be red
  • Must have unit tests for the color of the text

Screen Shot 2020-10-16 at 6 25 44 AM

Display user portfolio value over time

As a user I would like to know my past and present value of my portfolio to determine how I was doing

ex: If I'm an investor and in January 2020 I had 1000, and over the corse of 3 months I made 500$ (total of 1500$) I want to see a time series graph of that increase

Similar to the wealthsimple profile graph

Acceptance Criteria

  • User will be able to see a time-series graph of their portfolio value
  • User will be able to modify the date range from (all-time, 1 year, 3 months, 1 month, 1 week, 1 day)
  • User will be able to view other user's profile graph

image

People who own this stock, also own these stocks

As a user I want to see a recommended list that displays a list of stocks that are owned by people who also own this stock.

Acceptance Criteria

  • A list of stocks that are owned by people who also own this stock; this could be done by ranking the highest distribution of commonly owned stocks first.

ex: 60% of people who own AAPL also own TSLA, 30% of people of own AAPL also own GOOGL. So TSLA will be ranked 1st GOOGL 2nd.

image

Search for a stock by name or symbol

As a user I want to be able to search for a particular stock by entering the name or symbol of the stock

Acceptance Criteria

  • Able to view a list of stocks that correspond with the entered query (either by name or symbol)
  • Able to view the particular stock when searching for it by name or symbol
  • Not result found if an invalid query is entered

Screen Shot 2020-10-15 at 5 26 06 PM

Screen Shot 2020-10-15 at 5 28 29 PM

View basic profile information

As a user, I would like to view my profile information or another user's profile information

Acceptance Criteria

  • View my own profile picture
  • View my own biography
  • View my own username
  • View my own cover photo
  • View my own name
  • View other user profile picture
  • View other user biography
  • View other user username
  • View other cover photo
  • View other name

image

User Profile

This epic focuses on information and actions regarding a user's profile

Add investor labels to user profile

As a user I'll be able to view what type of investor I am based off my past and current investments so I can be more informed on the decisions I take.

ex: tech investor, mining investor, hybrid investor, etc

Notes / Todo

  • Find out what information we can get based off the used API
  • Determine what the different labels will be

Acceptance Criteria

  • The user must be assigned an investor label
  • The investor label must be visible
  • Users can view other user's investor labels

Display Price/Percentage Change

As a user I want to be able to see the price change and % change

Acceptance Criteria
-Able to see an accurate representation of price change: (current price - last day closing price); (red if -ve, green if +ve)
-Able to see an accurate representation of % change: ((current price / last day closing price) -1) * 100; (red if -ve, green if +ve)

aapl_stock.PNG

Follow / Unfollow another user

As a user I would like to follow / unfollow users to keep informed on their decisions

Acceptance Criteria

  • When user A follows / unfollows user B, this relationship should be noted in the database
  • User A should be able to follow user B by clicking a button
  • The styling of the button should be toggled based on following / unfollowing a user

Ability to place a market buy order

As a user I would like to place a market buy order so I can acquire a stock at it's current value

Acceptance Criteria

  • Ability to select market order
  • Ability to input the quantity of shares they want to buy
  • Ability to view the estimated final price
  • Displace amount of money the user can spend
  • *Have a tooltip saying 'Market orders might not fill at this exact price'
  • Have form errors/guards if user tries buying more than they can afford (for market orders this means being under 5% of the total order). Example: user wants to buy 100$ of AAPL and has 100$ available to trade. He wouldn't be able to because market order might execute a little higher. He must have 105$ (5% within)

Display Volume

As a user I want to be able to see the volume traded for the current day

Acceptance Criteria
-Able to see the volume traded for the current day

aapl_stock.PNG

Account Login

As a user, I would like to access my account in a secure manner to access my information

To discuss

  • Should the user's session expire after x amount of time?

Acceptance Criteria

  • The user must enter their email address or username as well as the corresponding password to access their account information
  • If the information is not correct, an error message must appear
  • Once the user is logged in, they must remained logged in even after switching pages (cookies)

Bid/Ask

As a user, I want to able to see the current bid price and its corresponding bid size, as well as the current ask price and its corresponding ask size.

*Note: Can be moved into 'Market Interaction' when placing a limit order

Acceptance Criteria
-Able to see the current bid price and bid size
-Able to see the current ask price and ask size

aapl_stock.PNG

Show user owned stocks their quantity

As a user I would like to easily see what stocks I own and the quantity

Acceptance Criteria

  • User can view the name and symbol of stocks they own
  • User can view the quantity of the stock they own

image

View number of followers / people who follow the user + detail user list

As a user I would like to know the number of followers / people I'm following as well as a detailed list of who they are to better know my social circle

Acceptance Criteria

  • User must be able to see the number of followers they have
  • User must be able to see the number of people they follow
  • User must be able to see the number of followers other users have
  • User must be able to see the number of people other users have
  • When clicking on the number of (followers / people they follow) they can see a list of their username and profile
  • When clicking on a user from this list, they will be brought to their profile page

Screen Shot 2020-09-15 at 10 19 54 AM

Display List of Followers Invested in Stock

As a user I want to be able to see if any of the people I follow are invested in this stock

Acceptance Criteria

  • Displaying n followers that are invested in the stock (ranked by amount owned), or empty list saying 'No followers are invested in this stock!'

image

Create Account

As a user I would like to add information to my account to give the app a personalized experience

To discuss

  • Should the user's password be forced to be stronger since we are dealing with money? -> yes (basic for now)

Acceptance Criteria

  • User must enter a unique email address
  • User must enter a strong password of at least 7 characters
  • User must enter a unique username (think of this as a twitter handle)
  • User can enter an optional biography
  • User can upload a personal image as a profile picture
  • If the user does not upload a personal image, they will be assigned a default profile image
  • If the user enters bad information there should be error messages that are displayed

Create 'Timeline' of followers transactions

As a user I would like to see all the most recent transactions of my followers so I'm up to date

To discuss

  • From the backend implement virtual scroll / load ?
  • Load x at a time vs loading them all at once?

Acceptance Criteria

  • See a list of transactions coming from your follower list sorted by date (newest ones appear at the top)
  • This list will be composed of transaction components [1]

[1] A transaction component will have been created by then or it will have been made in another user story

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.