Inspiration
My idea about this project is around constructing a platform. It's kind of a big project cause a platform must include the server, database and user-interface, which includes to lots of different language and tools.
Then I think of the BitCoin trading platform as my final product. Because the BitCoin is very popular in current investment industry. But also, we don't have too many training tools for new BitCoin investor. So this platform is designed to be a "fake" trading platform serve the training purpose or giving an idea to people who is considering to enter this new fascinating investment market. However, all the information and price are real time with the market. By using the platform, it can help the users to build a solid foundation for entering Bitcoin industry.
What it does
It simulate the experience of trading BitCoins on real platforms. Users can create new transactions, look up pending transactions and check current account asset.
How I built it
This project mainly implemented by Java, java serve as a connector to all components.
For server side, I utilized the Apache Tomcat server to construct local server on my PC and connect to whole platform with eclipse through servelet.
For database, I use MAMP and its mysql server to construct local database server on my PC and connect to whole platform with eclipse through java.sql libarary.
For user-interface, I choose web application instead of mobile applications, it's more popular and kind of easy to achieve, html, css and javascript was main language here.
Challenges I ran into
First challenge I encountered was the database design. I spent a lot of time on it cause lacking experience on database design. In the end I decided to follow the minimum viable product (MVP) principle to complete the whole project first and improve it later.
Second challenge was the concurrency problem. When working on some global static variables(to prevent excess the request limit of web API) and database connector, it is possible to raise the concurrency problem when multiple listener are working in same time. So I utilized singleten pattern and java synchronized lock based on function to prevent this. But it still could possible happen cause I didn't migrate to cloud and do load test yet.
Accomplishments that I'm proud of
The biggest accomplishement could be finishing this project. during this project, my understanding of IT is refreshed and improved. I also practiced a little bit frontend languages which I'm not familiar with before.
What's next for BitCoin Broker
This project is very flexible, as a training purpose platform, it can have more and more features been implemented in future. To improve this project, these following measure is needed:
- Migrate to cloud for example Amazon Web Service.
- A more complex, safe and proveable database design.
- More frontend features in user-interface.
Log in or sign up for Devpost to join the conversation.