My application is going to be very large, however like anything it has to start small.
I am starting here.
The program is called Nirvana, it is a stock screening and trading platform. There is no code written for it yet and were going to start from scratch.
Currently I have lose documentation and am working on putting it together for a working application. I have however settled on a stack for the application, upgrades and recommendations are welcome however I have chosen these items due to their functionality and forward thinking.
Node, RethinkDB, React, Express, Socket.
If you are not familiar with Rethink please be upfront and do a little research you may like it! The DB will push data to the front end if it is updated so you dont have to continuously poll the database. Also it can perform joins and has a robust query language.
The first iteration of the website will feature a homepage that has a lot of information on it, some charts, graphs, table data and a few news sections.
Second page is the screening page, the user will be able to screen from a variety of pre-defined screens which we will code probably in rethink if I understand how it works.
Third page will show the individual stock that the user selects. For this there are a few charting libraries available, I have seen amcharts.com and React Stockcharts. With either one I would like to do a lot of customization's in the future so please recommend which one is easier to work with or if you have another idea.
In the backend there are some choices to make, I am new to Document Databases which is what Rethink is, so I am a little unsure about how to format the tables and documents, (rethink calls collections tables) seeing as were going to have to sort through a lot of data I dont know if we should have each stock its own table, or have dates as tables and stocks as documents? Im not sure. Also we need to get data into the DB. I have a service that can get the data into the DB however for now I just upload CSV files. In the future we would need to hook into an API to get the data into Rethink, then the real fun begins!
Full Stack Development, you'll be doing most of it.
I have decided that instead of figuring out all this myself I would focus on RethinkDB and working in it, putting data where it belongs, making changes as needed and project management. You will be doing the rest basically.
You should also be prepared to help me where I need it in my capacity as stated above. I may need help knowing where things are and how to put rethink code into the files.
You will need to document you code, comment it very well and think of this as a very large application that can be worked on and updated/added onto easily.
In order to be successful you need to really be able to communicate with me, ask questions when you do not understand. Be able to see the big picture and communicate the vision and see it. If you cannot explain it to me then you dont understand it.
In the end we'll have a few very well laid out functional pages!