I'm 21 and still fairly new to backend development. I know enough Python to build small projects, but authentication, APIs, and WebSockets still send me searching for examples every few minutes. I want to move beyond typical tutorial projects, so I'm considering building a small dashboard that connects to an MT5 account.
The goal wouldn't be to make trading decisions or place real trades. I'd mainly like to display account information, open positions, trade history, and possibly live updates. It seems like a useful way to learn REST APIs and WebSockets while working on something I'm genuinely interested in.
The project has started looking much larger than I expected, though. I'd need to deal with authentication, maintaining connections, error handling, data storage, and real-time updates. Would it make sense to start with a simple REST-based version and add WebSocket support later?
When learning APIs, is it better to work directly with a real service or build a mock API first? I suspect using a real service would teach me more, but I don't want to make the project unnecessarily difficult. I'd like to learn practical backend skills without accidentally creating a system that could place trades with real money.
4 Answers
A real API is a good choice for learning, provided you use a safe demo account and keep the scope read-only. You don’t need to build a mock service first. You can always write small local tests or fake responses for cases like timeouts, malformed data, and authentication failures after you understand the normal API flow.
Go for the project if it keeps you interested. The fact that it’s more involved than a tutorial project isn’t automatically a problem; just break it into small milestones. Start by authenticating and fetching one piece of read-only account data, then add positions, trade history, persistence, and live updates one at a time.
Use a demo or paper-trading account while developing. Even if your application is only supposed to read data, a bug or mistaken endpoint could eventually submit an order, so keep real funds completely out of the testing loop.
Check whether the service provides a sandbox or demo environment, and see if there’s an official client library. Those libraries often handle much of the authentication, connection maintenance, and protocol details, letting you focus on your application instead of rebuilding infrastructure. Start with the REST endpoints, add basic error handling, and save WebSockets for after the core version works.

That makes sense. Treating each feature as its own small project feels much less intimidating than trying to build the whole dashboard at once.