Introduction, Goals and Design Philosophy
FinDL is a website aiming to provide a single platform for consuming financial reports from different sources around the world. Features of the website include bulk downloading and AI summaries of financial reports, both of which aren't quite easily achievable through most of the publishing platforms available.
This is mostly a hobbyist project, therefore I'm limiting myself with some design choices to create learning opportunities.
Language choice
I'm using Golang in the backend of the website. The selection comes mainly through learning purposes as Golang is something that I've wanted to try for some time. My programming background comes from scripting languages, and any kind of static typing is freshening. Golang is a garbage collected language, which should ease the transition since meticulous memory management is not needed. In addition, ease of multithreading seems to be a strength of the language, which aligns well with my design ideas for the website.
Design choices
Because of the scripting background of mine, I've decided to limit the role of frontend in this project. This has several nice outcomes, such as simplistic layout with html+css and fast page loading. Content is rendered server-side with golang html-templates and user requests through forms are handled in the backend server entirely. Frontend is mainly static with minimal (vanilla) JavaScript.
Another limitation I've selected is to not use any database storage, rather the reports are served as-needed from the available sources. I'm not really interested to store the found documents in any intermediary storage, so the website acts similarly to proxy, fetching many documents from the source in concurrent fashion. This introduces different set of problems with which I'm not too familiar in my database-oriented view.
The website doesn't have authentication per se, only a cookie/browser session storage, which is used to limit actions per user in a short time. The service is aimed for private individuals, and too many bulk requests could cause harm to original sources of the reports. However, the usage limitations can be lifted temporarily for a small fee.
Infra
While I'm not too fond of infrastructure-related problems, I decided to host the website on my own VPS, with nginx on top of it. Lack of database simplifies infrastructural needs, making the website quite standalone.
If you, the reader, have any suggestions or feedback to give, you can submit it through this form (link is on the website as well).