major functionalities:
User signup: Register a new user to the system with initial money.
Check the new username or email address if it’s already
registered to the system using AJAX.
Form. validation: Check if all mandatory fields are filled out.
(JQuery)
Check if password is strong enough. Define the rules of having a
strong password. (JQuery). User passwords should be hashed and
hashed version of passwords should be stored in the database.
User login
Each stock in the database should have Stock Name, Company
Name, Current Price, Previous Close, Open, Bid, Ask, Volume,
Industry. This data could be fetched by Yahoo Finance API.
Search stocks in the system. User should be able to filter the
results based on at least one criterion (i.e. category). Also, should
be able to “Search” for a specific item.
Database should have user info and exchange info and favorite
stock s of each user.
You will have paging functionality for listing stocks.
Favorites stocks for a user.
Users could buy and sell stocks though system. At buying UI, there
should have buying price, stock number, quantity of that stock. At
selling UI, there should have selling price, stock number, quantity
of that stock.
Each user has a summary page of showing the history of buying
and selling stocks and remaining money and total capital of
holding stocks (how to get current price to calculate it?
Dynamically fetch data though API mentioned above).
For Admin user(s):
o List all exchange items
o Add new exchange item
o Delete exchange item
o Update exchange item
For delete, soft-delete should be implemented.
Front-end design
You can use Bootstrap and Bootstrap templates for user interface
design. You can also use design tools (i.e. FrontPage, Dream Weaver).
You are flexible for page designs but it is important to have a
professional look for all pages (i.e. the same menu or navigation bar
appears on top of every page etc.).
You can also use frameworks (i.e. Angular JS) for client-side scripting.
Back-end design
You can use relational databases or MongoDB for database component.
In case a relational database system is used, tables should be
normalized to Third Normal Form.
For server side scripting, you can use PHP, Ruby on Rails and Node.JS
You are also allowed to use PHP frameworks such as Laravel,
CodeIgniter, CakePHP, etc.
Database Design
Database structure including the tables and primary and foreign key
definitions on tables should be present.