<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title><![CDATA[Forex Software — Development Progress]]></title>
		<link>https://forexsb.com/forum/topic/9892/development-progress/</link>
		<atom:link href="https://forexsb.com/forum/feed/rss/topic/9892/" rel="self" type="application/rss+xml" />
		<description><![CDATA[The most recent posts in Development Progress.]]></description>
		<lastBuildDate>Sun, 26 Jan 2025 17:18:51 +0000</lastBuildDate>
		<generator>PunBB</generator>
		<item>
			<title><![CDATA[Re: Development Progress]]></title>
			<link>https://forexsb.com/forum/post/82449/#p82449</link>
			<description><![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>]]></description>
			<author><![CDATA[null@example.com (Popov)]]></author>
			<pubDate>Sun, 26 Jan 2025 17:18:51 +0000</pubDate>
			<guid>https://forexsb.com/forum/post/82449/#p82449</guid>
		</item>
		<item>
			<title><![CDATA[Re: Development Progress]]></title>
			<link>https://forexsb.com/forum/post/82447/#p82447</link>
			<description><![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>]]></description>
			<author><![CDATA[null@example.com (Popov)]]></author>
			<pubDate>Sat, 25 Jan 2025 10:00:17 +0000</pubDate>
			<guid>https://forexsb.com/forum/post/82447/#p82447</guid>
		</item>
		<item>
			<title><![CDATA[Re: Development Progress]]></title>
			<link>https://forexsb.com/forum/post/82289/#p82289</link>
			<description><![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>]]></description>
			<author><![CDATA[null@example.com (Popov)]]></author>
			<pubDate>Sun, 05 Jan 2025 16:01:42 +0000</pubDate>
			<guid>https://forexsb.com/forum/post/82289/#p82289</guid>
		</item>
		<item>
			<title><![CDATA[Re: Development Progress]]></title>
			<link>https://forexsb.com/forum/post/82279/#p82279</link>
			<description><![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>]]></description>
			<author><![CDATA[null@example.com (Popov)]]></author>
			<pubDate>Thu, 02 Jan 2025 22:18:20 +0000</pubDate>
			<guid>https://forexsb.com/forum/post/82279/#p82279</guid>
		</item>
		<item>
			<title><![CDATA[Re: Development Progress]]></title>
			<link>https://forexsb.com/forum/post/82275/#p82275</link>
			<description><![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>]]></description>
			<author><![CDATA[null@example.com (Popov)]]></author>
			<pubDate>Wed, 01 Jan 2025 18:48:03 +0000</pubDate>
			<guid>https://forexsb.com/forum/post/82275/#p82275</guid>
		</item>
		<item>
			<title><![CDATA[Re: Development Progress]]></title>
			<link>https://forexsb.com/forum/post/82273/#p82273</link>
			<description><![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>]]></description>
			<author><![CDATA[null@example.com (Popov)]]></author>
			<pubDate>Tue, 31 Dec 2024 17:04:30 +0000</pubDate>
			<guid>https://forexsb.com/forum/post/82273/#p82273</guid>
		</item>
		<item>
			<title><![CDATA[Re: Development Progress]]></title>
			<link>https://forexsb.com/forum/post/82272/#p82272</link>
			<description><![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>]]></description>
			<author><![CDATA[null@example.com (Popov)]]></author>
			<pubDate>Tue, 31 Dec 2024 12:45:29 +0000</pubDate>
			<guid>https://forexsb.com/forum/post/82272/#p82272</guid>
		</item>
		<item>
			<title><![CDATA[Re: Development Progress]]></title>
			<link>https://forexsb.com/forum/post/82268/#p82268</link>
			<description><![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>]]></description>
			<author><![CDATA[null@example.com (gabdecsters)]]></author>
			<pubDate>Tue, 31 Dec 2024 07:36:12 +0000</pubDate>
			<guid>https://forexsb.com/forum/post/82268/#p82268</guid>
		</item>
		<item>
			<title><![CDATA[Re: Development Progress]]></title>
			<link>https://forexsb.com/forum/post/82267/#p82267</link>
			<description><![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>]]></description>
			<author><![CDATA[null@example.com (Popov)]]></author>
			<pubDate>Mon, 30 Dec 2024 14:44:38 +0000</pubDate>
			<guid>https://forexsb.com/forum/post/82267/#p82267</guid>
		</item>
		<item>
			<title><![CDATA[Re: Development Progress]]></title>
			<link>https://forexsb.com/forum/post/82261/#p82261</link>
			<description><![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>]]></description>
			<author><![CDATA[null@example.com (Popov)]]></author>
			<pubDate>Mon, 30 Dec 2024 06:37:52 +0000</pubDate>
			<guid>https://forexsb.com/forum/post/82261/#p82261</guid>
		</item>
		<item>
			<title><![CDATA[Re: Development Progress]]></title>
			<link>https://forexsb.com/forum/post/82257/#p82257</link>
			<description><![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>]]></description>
			<author><![CDATA[null@example.com (Popov)]]></author>
			<pubDate>Sun, 29 Dec 2024 18:43:33 +0000</pubDate>
			<guid>https://forexsb.com/forum/post/82257/#p82257</guid>
		</item>
		<item>
			<title><![CDATA[Re: Development Progress]]></title>
			<link>https://forexsb.com/forum/post/82256/#p82256</link>
			<description><![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>]]></description>
			<author><![CDATA[null@example.com (Popov)]]></author>
			<pubDate>Sun, 29 Dec 2024 18:09:57 +0000</pubDate>
			<guid>https://forexsb.com/forum/post/82256/#p82256</guid>
		</item>
		<item>
			<title><![CDATA[Re: Development Progress]]></title>
			<link>https://forexsb.com/forum/post/82254/#p82254</link>
			<description><![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>]]></description>
			<author><![CDATA[null@example.com (Popov)]]></author>
			<pubDate>Sun, 29 Dec 2024 11:18:52 +0000</pubDate>
			<guid>https://forexsb.com/forum/post/82254/#p82254</guid>
		</item>
		<item>
			<title><![CDATA[Re: Development Progress]]></title>
			<link>https://forexsb.com/forum/post/82253/#p82253</link>
			<description><![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>]]></description>
			<author><![CDATA[null@example.com (Popov)]]></author>
			<pubDate>Sun, 29 Dec 2024 10:58:05 +0000</pubDate>
			<guid>https://forexsb.com/forum/post/82253/#p82253</guid>
		</item>
		<item>
			<title><![CDATA[Re: Development Progress]]></title>
			<link>https://forexsb.com/forum/post/82251/#p82251</link>
			<description><![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>]]></description>
			<author><![CDATA[null@example.com (Popov)]]></author>
			<pubDate>Sat, 28 Dec 2024 21:01:18 +0000</pubDate>
			<guid>https://forexsb.com/forum/post/82251/#p82251</guid>
		</item>
	</channel>
</rss>
