<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
	<title type="html"><![CDATA[Forex Software — Development Progress]]></title>
	<link rel="self" href="https://forexsb.com/forum/feed/atom/topic/9892/" />
	<updated>2025-01-26T17:18:51Z</updated>
	<generator>PunBB</generator>
	<id>https://forexsb.com/forum/topic/9892/development-progress/</id>
		<entry>
			<title type="html"><![CDATA[Re: Development Progress]]></title>
			<link rel="alternate" href="https://forexsb.com/forum/post/82449/#p82449" />
			<content type="html"><![CDATA[<p>Hello Traders,</p><p>Another milestone was reached. The new application can load and parse historical data.</p><p>As expected, the data sources are the same as in EA Studio. However, some changes are made:<br />Premium Data is shown as DukasCopy.<br />MetaTrader Demo is shown as MetaQuotes.</p>]]></content>
			<author>
				<name><![CDATA[Popov]]></name>
				<uri>https://forexsb.com/forum/user/2/</uri>
			</author>
			<updated>2025-01-26T17:18:51Z</updated>
			<id>https://forexsb.com/forum/post/82449/#p82449</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Development Progress]]></title>
			<link rel="alternate" href="https://forexsb.com/forum/post/82447/#p82447" />
			<content type="html"><![CDATA[<p>Hello Traders,</p><p>I finished a lot of work on the other project, so I am continuing to work on this new application.</p><p>I already have an idea of the general design of the user interface and have prototyped the main panels and navigation bars.</p><p>Now, I&#039;m starting the work on the functionality.</p><p>I&#039;ll post regular updates on the progress.</p><p>Trade Safe!</p>]]></content>
			<author>
				<name><![CDATA[Popov]]></name>
				<uri>https://forexsb.com/forum/user/2/</uri>
			</author>
			<updated>2025-01-25T10:00:17Z</updated>
			<id>https://forexsb.com/forum/post/82447/#p82447</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Development Progress]]></title>
			<link rel="alternate" href="https://forexsb.com/forum/post/82289/#p82289" />
			<content type="html"><![CDATA[<p>Hello Traders,</p><p>I refactored and improved the server code a lot. Now, I consider it ready.</p><p>I also cleaned up the client-side code for account management: <br /> - Signup<br /> - Log-in<br /> - Password reset<br /> - Password change</p><p>My next task is to start building the main layout of the application - navigation bars and content panels.</p>]]></content>
			<author>
				<name><![CDATA[Popov]]></name>
				<uri>https://forexsb.com/forum/user/2/</uri>
			</author>
			<updated>2025-01-05T16:01:42Z</updated>
			<id>https://forexsb.com/forum/post/82289/#p82289</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Development Progress]]></title>
			<link rel="alternate" href="https://forexsb.com/forum/post/82279/#p82279" />
			<content type="html"><![CDATA[<p><strong>Postmark-email</strong></p><p>This is a helper library which sends email through <a href="https://postmarkapp.com/">Postmark</a><br />I&#039;m using this third-party service to send emails from applications when a user registers or changes a password.</p><p>Link: <a href="https://github.com/PopovMP/postmark-email">https://github.com/PopovMP/postmark-email</a></p><p>I also worked on the server code today, fixing bugs and improving code quality.</p>]]></content>
			<author>
				<name><![CDATA[Popov]]></name>
				<uri>https://forexsb.com/forum/user/2/</uri>
			</author>
			<updated>2025-01-02T22:18:20Z</updated>
			<id>https://forexsb.com/forum/post/82279/#p82279</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Development Progress]]></title>
			<link rel="alternate" href="https://forexsb.com/forum/post/82275/#p82275" />
			<content type="html"><![CDATA[<p><strong>Happy New Year!</strong></p><p>I started working on the new application&#039;s user interface and ported some of my previous code.<br />The new server is online in its domain name. We can sign up, log in, change, or reset passwords.<br />It is an empty frame so far, but I&#039;m satisfied with the progress.<br />I need several days more to clean up the backend and the client-side framework and improve some messages.</p><p>I wish you a prosperous new year full of excitement!</p>]]></content>
			<author>
				<name><![CDATA[Popov]]></name>
				<uri>https://forexsb.com/forum/user/2/</uri>
			</author>
			<updated>2025-01-01T18:48:03Z</updated>
			<id>https://forexsb.com/forum/post/82275/#p82275</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Development Progress]]></title>
			<link rel="alternate" href="https://forexsb.com/forum/post/82273/#p82273" />
			<content type="html"><![CDATA[<p>I added TypeScript definitions for all of the above modules today.<br />The complete code is also TypeScritp validated.</p><br /><p><strong>Many Thanks to all of you!</strong></p><p><strong>I wish you a pleasant New Year&#039;s celebration filled with health, happiness, and love for you and your families!<br />May the new year bring you lots of joy and success!</strong></p>]]></content>
			<author>
				<name><![CDATA[Popov]]></name>
				<uri>https://forexsb.com/forum/user/2/</uri>
			</author>
			<updated>2024-12-31T17:04:30Z</updated>
			<id>https://forexsb.com/forum/post/82273/#p82273</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Development Progress]]></title>
			<link rel="alternate" href="https://forexsb.com/forum/post/82272/#p82272" />
			<content type="html"><![CDATA[<p>&gt; I think I get it, are you writing all the software from scratch?</p><p>I usually write a program once. Then, I rewrite it again for optimization, validation, or code cleanup purposes ten times.<br />This is not how professional software companies work. However, I consider myself an Independent developer and see programming more as an art than a job.</p><p>As for now, FSB Pro, EA Studio, and Express Generator are mature products.<br />Top 10 Robots App and Prop Firms Robot App are also more or less ready (though there are some issues, and I&#039;m still working on improving the validation workflow).</p><p>I started working on a new product, which I&#039;ll introduce later.</p><p>I&#039;m currently working on the server part of the new application. I&#039;m trying to build a frame around which I&#039;ll later add the program&#039;s actual functionality.</p><p>Programming languages, software tools, technology and knowledge change with time. Therefore, I&#039;m rewriting the components I used in the previous products.</p><p>(More particularly, I&#039;m converting the code from CommonJS to ES Modules and applying the strictest possible validation with TypeScript, ESLint, and Unit Testing.)</p><p>&gt; Is the specific purpose safety or performance?</p><p>I achieve better safety and performance, but this is a side effect of my work.<br />It happens because my programs use only the necessary code for the purpose.</p><p>&gt; Or literally new software for another exporter<br />When the backend is ready, I&#039;ll start the work on the actual exporter <img src="https://forexsb.com/forum/img/smilies/smile.png" width="15" height="15" alt="smile" /></p>]]></content>
			<author>
				<name><![CDATA[Popov]]></name>
				<uri>https://forexsb.com/forum/user/2/</uri>
			</author>
			<updated>2024-12-31T12:45:29Z</updated>
			<id>https://forexsb.com/forum/post/82272/#p82272</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Development Progress]]></title>
			<link rel="alternate" href="https://forexsb.com/forum/post/82268/#p82268" />
			<content type="html"><![CDATA[<p>Hello sir in. Full dawn at 5 am catching up on the forums and I see your post session&nbsp; </p><p>I think I get it, are you writing all the software from scratch? Is the specific purpose safety or performance? Or literally new software for another exporter</p>]]></content>
			<author>
				<name><![CDATA[gabdecsters]]></name>
				<uri>https://forexsb.com/forum/user/14801/</uri>
			</author>
			<updated>2024-12-31T07:36:12Z</updated>
			<id>https://forexsb.com/forum/post/82268/#p82268</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Development Progress]]></title>
			<link rel="alternate" href="https://forexsb.com/forum/post/82267/#p82267" />
			<content type="html"><![CDATA[<p>I added an API functionality to <a href="https://github.com/PopovMP/json-db">Json-DB</a> and cleaned up a lot of code.</p><p>I can now control the databases with remote requests.</p>]]></content>
			<author>
				<name><![CDATA[Popov]]></name>
				<uri>https://forexsb.com/forum/user/2/</uri>
			</author>
			<updated>2024-12-30T14:44:38Z</updated>
			<id>https://forexsb.com/forum/post/82267/#p82267</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Development Progress]]></title>
			<link rel="alternate" href="https://forexsb.com/forum/post/82261/#p82261" />
			<content type="html"><![CDATA[<p>I have the server running <img src="https://forexsb.com/forum/img/smilies/smile.png" width="15" height="15" alt="smile" />)))</p><p><a href="https://image-holder.forexsb.com/store/test-server-developemnt-a1.png"><span class="postimg"><img src="https://image-holder.forexsb.com/store/test-server-developemnt-a1-thumb.png" alt="https://image-holder.forexsb.com/store/test-server-developemnt-a1-thumb.png" /></span></a></p><p>Today, I&#039;ve been doing a lot of code cleaning and refactoring. I have a good feeling that I&#039;ll have the user management working until the evening.</p>]]></content>
			<author>
				<name><![CDATA[Popov]]></name>
				<uri>https://forexsb.com/forum/user/2/</uri>
			</author>
			<updated>2024-12-30T06:37:52Z</updated>
			<id>https://forexsb.com/forum/post/82261/#p82261</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Development Progress]]></title>
			<link rel="alternate" href="https://forexsb.com/forum/post/82257/#p82257" />
			<content type="html"><![CDATA[<p>I&#039;ll start assembling the server backend tomorrow. </p><p>It needs at least these essential components:<br /> - <strong>configuration</strong>—it contains and provides the application&#039;s generic settings. It also reads private local settings.<br /> - <strong>server</strong> - this is the main part of the backend. It will construct the request and the response objects<br /> - <strong>server-request</strong> - it will parse the incoming request and will hold the properties in a handy way.<br /> - <strong>server-response</strong> - it will compose and send the request&#039;s response.<br /> - <strong>router</strong> - it will map the incoming requests by URL and will redirect them to the corresponding controller actions.<br /> - <strong>public-server</strong> - it will deal with all public resources like: javascript files, images, styles, fonts, data files...</p><p>I have these components working in my previous apps, but I&#039;ll &quot;modernize&quot; them and make them suitable for future products without third-party dependencies.</p><p>My next steps are:</p><p> 1) Make a stand-alone backend app using the previously listed components. It must be able to show a static webpage with the corresponding pages, scripts and stiles.</p><p> 2) Add DataBase and API. Introduce a &quot;User&quot; model. Implement CRUD: <strong>C</strong>reate, <strong>R</strong>ead, <strong>U</strong>pdate, and <strong>R</strong>emove users remotely.</p><p> 3) Make the basic frame of the application&#039;s client-side user interface. Make a Light and Dark theme</p><p> 4) Make user forms for sign-up, login, change password, and reset password.</p><p>I hope all of these will be read to some extent next week. Then, I&#039;ll have the foundation of the new application and can start the work on the main functionality.</p><p>Happy Holidays!</p>]]></content>
			<author>
				<name><![CDATA[Popov]]></name>
				<uri>https://forexsb.com/forum/user/2/</uri>
			</author>
			<updated>2024-12-29T18:43:33Z</updated>
			<id>https://forexsb.com/forum/post/82257/#p82257</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Development Progress]]></title>
			<link rel="alternate" href="https://forexsb.com/forum/post/82256/#p82256" />
			<content type="html"><![CDATA[<p>Another handy library: <strong>client-request</strong></p><p>It sends GET, POST, or PUT requests and parses the response body depending on the Content-Type response header.</p><p>Link: <a href="https://github.com/PopovMP/client-request">https://github.com/PopovMP/client-request</a></p>]]></content>
			<author>
				<name><![CDATA[Popov]]></name>
				<uri>https://forexsb.com/forum/user/2/</uri>
			</author>
			<updated>2024-12-29T18:09:57Z</updated>
			<id>https://forexsb.com/forum/post/82256/#p82256</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Development Progress]]></title>
			<link rel="alternate" href="https://forexsb.com/forum/post/82254/#p82254" />
			<content type="html"><![CDATA[<p>Added <strong>parseJwtPayload</strong> to the JWT module.</p><p>It helps to parse the token information from an <strong>Authorization</strong> header.</p>]]></content>
			<author>
				<name><![CDATA[Popov]]></name>
				<uri>https://forexsb.com/forum/user/2/</uri>
			</author>
			<updated>2024-12-29T11:18:52Z</updated>
			<id>https://forexsb.com/forum/post/82254/#p82254</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Development Progress]]></title>
			<link rel="alternate" href="https://forexsb.com/forum/post/82253/#p82253" />
			<content type="html"><![CDATA[<p>Another module is ready:&nbsp; <strong>Request Parser</strong></p><p>This module comprises several helper functions for parsing incoming requests:</p><p> - Parse URL path parameters<br /> - Parse request body<br /> - Parse Form Data<br /> - Parse Query String<br /> - Parse JSON values<br /> - Split Authorization Header</p><p>Link: <a href="https://github.com/PopovMP/request-parser">https://github.com/PopovMP/request-parser</a></p>]]></content>
			<author>
				<name><![CDATA[Popov]]></name>
				<uri>https://forexsb.com/forum/user/2/</uri>
			</author>
			<updated>2024-12-29T10:58:05Z</updated>
			<id>https://forexsb.com/forum/post/82253/#p82253</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Development Progress]]></title>
			<link rel="alternate" href="https://forexsb.com/forum/post/82251/#p82251" />
			<content type="html"><![CDATA[<p>Hello Trader,</p><p>I just uploaded the next component, Json-DB. This is a &quot;modernized&quot; version of the DataBase engine I developed for EA Studio.</p><p>This database is straightforward for me because I understand it completely. This is not the case when I&#039;m using third-party software components. No matter how thoroughly you study something you did not create, there are always questions about how exactly it works or the reasoning behind some solutions.</p><p>Link: <a href="https://github.com/PopovMP/json-db">https://github.com/PopovMP/json-db</a></p><p>I need to update and prepare several more components before assembling the backend server. I&#039;m using parts of my previous projects to assemble the necessary libraries.</p><p>Extracting the code into separate modules makes it easy to optimize it or to find problems.</p><p>Another essential concept is Unit Testing. A unit test is a small program that tests the main program.</p><p>The JSON-DB has 87 unit tests.<br />Each test has a short description and checks whether a function gets the expected result when given particular parameters. All tests must pass before publishing software.</p><p>Example:<br /></p><div class="codebox"><pre><code>✔ dbProjection gets complete doc given {} (0.7249ms)
✔ dbProjection gets complete doc (0.1449ms)
✔ dbProjection gets partial doc (0.1486ms)
✔ dbProjection does not get _id by default (0.0871ms)
✔ dbProjection accepts excluding values (0.1057ms)
✔ dbProjection does not accept mixed values (0.9165ms)
✔ dbQuery gets all _id if the query is empty (1.1526ms)</code></pre></div><p>Have a great holiday season!</p>]]></content>
			<author>
				<name><![CDATA[Popov]]></name>
				<uri>https://forexsb.com/forum/user/2/</uri>
			</author>
			<updated>2024-12-28T21:01:18Z</updated>
			<id>https://forexsb.com/forum/post/82251/#p82251</id>
		</entry>
</feed>
