Coder Social home page Coder Social logo

cs130-final-project-dis1b-group6's People

Contributors

anivrit avatar dwu-tech avatar jamesg6197 avatar kmachnickiwork avatar kmachnickiwork49 avatar prateeksane avatar solomon-lo avatar

Watchers

 avatar  avatar

cs130-final-project-dis1b-group6's Issues

Investors need feedback on their simulated decisions and ways to track and measure their skills.

Epic

Feedback on user strategies needs to be clear and direct, with key statistics highlighting strategy performance.

User Stories

  • As a user, I want a clear UI dashboard with strategy performance over certain historic time intervals (day, month, year). Then I can use this knowledge to determine which stocks in my portfolio should be bought/sold.
  • As a user, I want to be able to form a user group, where I can compete with friends / fellow investors to produce the highest returns.
  • As a user, I want my dashboard to display rankings of my group so my group members and I can learn from each other's successes and mistakes.

Use Cases and Features

  • Users can read the insights to understand what parts of their portfolio succeeded and failed as well as recommended stocks and actions.
  • Friendly competition allows users to evaluate their scores via peer comparison, collaborate to find improved investment strategy, and learn from each other's decisions.

Tech Stack

  • HTML, CSS to display the webpage which houses the application
  • React, Redux for user interactions with the app
  • NodeJS, MongoDB for user authentication
  • MongoDB for storing user account and session information, including which stocks they own, their funds, their high scores, etc.
  • Javascript for the execution of the simulator session and accessing MongoDB

Create a stocks page

User Story

As a user, I would like to be able to view the stocks that I've selected in my portfolio so that I can keep track of them and see how much they are worth.

Detailed Description

Players should be able to access a list of their selected stocks, and how much they're worth based on the current real-world stock price.

Acceptance Criteria

  • Given that a player has selected stocks, then display them in an orderly way in the portfolio page and list their values.

Create a homepage for the application

User Story

As a User, I would like to see a homepage so that I know where I am located on the application

Detailed Description

Have a front end with a landing page for a new user that describes the stock game briefly, and have buttons that link to other pages such as log in and game creation

Acceptance Criteria

  • Given a user visits the home page, then show a page that can navigate to all of the other pages such as log in and register user

Create endpoint for registering new users

User Story

As a new user, I would like to be able to query endpoints to create a new user so that I can register my own information..

Detailed Description

We need to create endpoints that allow a user to register themselves, which will store their information on the database.

Acceptance Criteria

  • Given a user who wants to register themselves, then provide an endpoint that will create and store the information in the backend database.

Scoreboard Page

Create a part on the game page to display scores of winners based on result of scoring function

Create a stocks page

User Story

As a user, I would like to be able to view the stocks that I've selected in my portfolio so that I can keep track of them and see how much they are worth.

Detailed Description

Players should be able to access a list of their selected stocks, and how much they're worth based on the current real-world stock price.

Acceptance Criteria

  • Given that a player has selected stocks, then display them in an orderly way in the portfolio page and list their values.

Be able to create a game

User Story

As a user, I would like to create games so that I can test my trading strategies with others.

Detailed Description

Be able to start a game with invited users. There should be front end changes to create a game as well as an endpoint that can create new games in the mongodb.

Acceptance Criteria

  • Given a user wants to create a game, then they can create it via the front end

Investors want to test their investment decisions on real data without the cost of actual investments

Epic

Investors want to test their investment decisions on real data without the cost of actual investments. Our simulator needs to retrieve relevant market data and simulate how users’ portfolio values change with time.

User Stories

  • As a user, I want to add a virtual stock to my portfolio to simulate myself purchasing a real stock in the market.
  • As a user, I want the simulator to simulate time passing and to update the value of my stocks so that I can simulate myself earning or losing money in the stock market.

Use Cases and Features

  • Users should see a real-time value of their stock changing as time progresses in the simulator.
  • Users should have access to a wide variety of real stocks which have associated stock price histories.

Tech Stack

  • Alpha Vantage API for realtime stock prices and stock price history, compatible with NodeJS and other languages, free API key for limited usage (may swap to different API as necessary)
  • Javascript, does not involve frontend or MongoDB access, works with Alpha Vantage API

Create a scoreboard page

User Story

As a user, I would like to be able to what other players are in the game and how many points they have so that I can how I'm doing compared to the other players in the game and compare my rankings.

Detailed Description

All the players should be displayed in a single screen, and the players along with their scores should be displayed. The players should be displayed by their rankings.

Acceptance Criteria

  • Given multiple players join a game, then display their name and points.
  • Given that the players have different points, then players with more points show be displayed higher in the scoreboard than the players with lower points.

Create an input field for adding new stocks

User Story

As a user, I would like to add stocks to my portfolio so that I can make more money in the game.

Detailed Description

The user should be able to enter a stock ticker into the input field, which will then add the field to their portfolio.

Acceptance Criteria

  • Given a stock ticker of a stock that the user wants to buy which is inputted into the input field, then add the field to the user's portfolio.

Integrate Django with MongoDB

User Story

As a developer, I would like to be able to access our database via the backend so that we can have a single database for our application.

Detailed Description

Add a MongoDB database with the existing defined data models, and connect to our backend

Acceptance Criteria

  • Given our sandbox database in mongodb, we should be able to access it via our django backend

Add log in functionality

User Story

As a user I would like to login so that I can have an account that holds all of the games I have joined.

Detailed Description

Front end should register the click on login with the proper credentials, the backend will verify if the credentials are already listed in the database, if so the user will be logged in.

Acceptance Criteria

  • Given a user logs in with the proper credentials, then they should be logged in (button shows log out instead of log in)

Users of the simulator need to be able to customize and view insights on their portfolio/account.

Epic

Users of the simulator need to be able to customize and view insights on their portfolio/account. This involves a UI that supports user interaction and gathers the user’s registered data from the backend.

User Stories

  • As a user, I want to login/logout and initiate/resume a simulator session to practice my investment skills with my personal saved data.
  • As a user, I want the simulator sessions to show portfolio insights, such as how much money in each stock, which stocks recently went up/down in value, etc. This will allow me to measure my portfolio's effectiveness and adjust my strategy accordingly.

Use Cases and Features

  • Users will have their own account to resume previous sessions and track their high scores.
  • Once a user is in a simulator session, they have access to a clear UI that allows them to purchase/sell stocks and see recent values of stocks.

Tech Stack

  • HTML, CSS to display the webpage which houses the application
  • React, Redux for user interactions with the app
  • NodeJS, MongoDB for user authentication
  • MongoDB for storing user account and session information, including which stocks they own, their funds, their high scores, etc.
  • Javascript for the execution of the simulator session and accessing MongoDB

Create a basic Django Workflow

User Story

As a developer I would like to have CI/CD so that we can ensure that there are no breaking changes and our application always runs as expected

Detailed Description

Add a django workflow so that when new changes are pushed, the workflow is run

Acceptance Criteria

  • Given a git push into main, then run the django workflow

Make a data model for the user, game, and other objects

User Story

As a developer, we would like to represent the various objects (user, game, etc.) in our database to be able to store the objects.

Detailed Description

Define detailed models for a user, game and other objects to be able to store these objects in MongoDB. These data models should reflect the collections we defined in MongoDB

Acceptance Criteria

  • Given an object in our application, then we should have a defined data model for that object

Add integration with polygon api

User Story

As a user, I would like to know real time stock data so that my trades simulating buying and selling stocks can be reflective of real world pricing.

Detailed Description

Add functionality to call Polygon API

Acceptance Criteria

  • Given a selected stock then be able to find its price in real time

Create a scoreboard

User Story

As a [Role], I would like [Requirement] so that [Reason].

Detailed Description

Provide additional details and context.

Acceptance Criteria

  • Given [Condition], then [Expected Result]
  • Given [Condition], then [Expected Result]
  • Given [Condition], then [Expected Result]

Add Endpoints for creating and joining games

User Story

As a user I would like to be able to query the backend endpoints so that I can register, create, and join games.

Detailed Description

The user needs to be able to call certain endpoints to create and join games with other players by registering and interacting with the game data objects in the backend.

Acceptance Criteria

  • Given a player who wants to interact with a game, then be able to query the backend with a endpoint to either create or join games.

Create a scoreboard page

User Story

As a user, I would like to be able to what other players are in the game and how many points they have so that I can how I'm doing compared to the other players in the game and compare my rankings.

Detailed Description

All the players should be displayed in a single screen, and the players along with their scores should be displayed. The players should be displayed by their rankings.

Acceptance Criteria

  • Given multiple players join a game, then display their name and points.
  • Given that the players have different points, then players with more points show be displayed higher in the scoreboard than the players with lower points.

Be able to interact with the API in backend

User Story

As a user, I would like to register myself as a user, log in, and be able to create games while having my data saved so that my data is always present in the application.

Detailed Description

Create a function to be able to request an endpoint and get the results of the request. Also add a button for testing purpose to verify that the api can be called via front end

Acceptance Criteria

  • Given an endpoint and request type, then console log the outputs of the request when front end button is pressed

Add unit tests to application

User Story

As a developer, I would like to have model unit tests so that our program functions robustly.

Detailed Description

Be able to test the models functionality via unit testing to ensure the application functions as expected

Acceptance Criteria

  • Given our application, then we should have unit tests that cover correct models aspects of the applicatoin
  • Given [Condition], then [Expected Result]
  • Given [Condition], then [Expected Result]

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.