Papyrus - Senior Project

Posted On: Fri Jan 01 2021 04:47:31 GMT+0000 (Coordinated Universal Time)

Papyrus is a simple, user-friendly, paper trading application aimed at newcomers to investing in the stock market. I created this application for my senior project to solve an issue I found with current paper-trading applications. Currently, they are largely difficult to use for newcomers and aren't inuitive. Also, there is no means to replicating portfolios of different wealths. For example, you may want to see in your teenage years how you could make $10,000 into more money, but may also want to have a portfolio that reflects you when you're older. You can have a portfolio with an amount like $50,000 as well and switch between the two feasibly whilst still seeing the progress in each. 



  • NodeJS API - Serves user accounts from MongoDB and stock data from public stock APIs.
  • React Frontend - Requests information from the API and displays views accordingly. Data can be refreshed in real-time thanks to React's ability to swap components asynchronously.
  • MongoDB - Utilized as the application's information storage. Users, user portfolios, transactions, and stocks are saved here.
  • Responsiveness - React components were chosen to make the website as feasible to use on any device as possible. All that is required to use the application is access to a web browser.


Site Functionalities

  • Homepage - Introduces the user to the website, and provides instructions on how to begin


  • Authentication/Authorization/Administration - Users must be logged in to trade stocks, and have sufficient priveleges to view the administration panel. Within the panel, user accounts can be deleted and created with portfolios being purged upon deletion.

  • Portfolios & User Profiles stored using MongoDB, passwords hashed using Bcrypt.



  • Stock Data View - Search for stocks via company name or ticker symbol to view time-variable data.

Stock View

  • Dashboard - Will display currently trending stocks if no stocks are present in the user's portfolio, and trends of current user-stocks if stocks are present.


  • User Profiles & User Portfolios - Here, users can interact with their account information, current portfolio, and unactive portfolios.

  • Current portfolio value and changes in portfolio value are displayed here. You can change portfolios easily and view different profits/losses over different periods of time using different amounts of money.


  • Stock Trading - Search for companies by name or ticker symbol. Allows buying and selling at current market price.


  • Level 1 DFD - Showcases how data was initially planned to flow through the application and external entities.


  • Initial Gantt Chart - For this project, we planned development over the course of a semester and broke it into individual tasks that must be completed.

    • As you can see, Django was the initial framework used for the API, however upon reflection, it was found to not be suited for this project, so a NodeJS API was chosen instead due to its ease of use with React.