Skip to content

fsereno/portfolio

Repository files navigation

FS Website Solutions

Fabio Sereno - Software Engineer

Highly experienced Full Stack Software Engineer with over 15 years of experience (6+ years in the FinTech sector). Self-motivated, enthusiastic, and professional team player with strong analytical and problem-solving skills. Demonstrates proficiency in coding and a proven ability to successfully complete projects with innovation and creativity.

Passionate about software development and constantly eager to learn and adopt the latest technologies. Keen interest in FinTech, HealthTech, Commerce, ML/AI, Blockchain, XR (VR/AR), and IoT.

My Portfolio Repository

The purpose of this repository is to demonstrate skills in various technologies, coding proficiency and knowledge.

This portfolio showcases a minimum viable product (MVP) for a technology-agnostic cloud deployment solution.

To view a static version of this project with limited functionality, please visit: https://fsereno.github.io/portfolio/

To see a fully containerised version of this project deployed to AWS (Amazon Web Services) EC2, please either raise an issue on this GitHub repository or contact me via LinkedIn.

Alternatively to deploy locally, please clone this repository, ensure NodeJS and Docker are installed on your machine and you can then run the production version locally.

Contents

Prerequisites

Installation

  • Follow these steps to install this repo locally.

Clone

  • Clone this repo to your local machine using https://github.com/fsereno/portfolio

Compose

  • Please ensure you have Docker installed and running.
  • Open your preferred command line:

Docker compose files are dynamically built, depending on command line arguments.

$ npm run compose -- <options>

Passing no arguments will result in adding all available services to the production compose file.

Alternatively, passing --mode dev, will build the development compose file.

$ npm run compose -- --mode dev

However, once again, this will include all available services in the compose file.

To include only specific services in the compose file, use the --include argument:

$ npm run compose -- --mode dev --include dataStructures
This will:
  • Compose the development version of the file.
  • Simply exclude --mode dev if building for production.
  • Include only the dataStructures service.
  • The necessary Nginx service will also be included.

Start/Stop

  • Please ensure you have Docker installed and running.
  • Open your preferred command line:
$ npm run start -- <options>

Passing no arguments will result in the production environment being started.

This will:
  • Pull all images from Docker Hub.
  • Spin up all services in containers.
  • The application will be available at: http://localhost

To stop one of the above tasks, excluding those which destroy themselves:

$ npm run stop -- <options>

Passing --name will start a particular container.

$ npm run start -- --name <application_name>
This will:
  • Start only the container for the given application.
  • The application will be available at: http://localhost

To stop a particular container:

$ npm run stop -- --name <application_name>

To start the development environment:

$ npm run start  -- --mode dev --context dataStructures
This will:
  • Start the webpack development server.
  • Start the necessary backend services.
  • Watch for any changes on dataStructures development resources.
  • Hot-reload any changes straight to the browser for the dataStructures application.
  • The default application is the root application - home.
  • Open your browser and navigate to http://localhost

Run dependency analysis on a specific application

$ npm run analysis dir=dataStructures
This will:
  • Start the webpack analysis server.
  • Perform a dependency analysis of the dataStructures application frontend.
  • The default application is the root application - home.
  • Open your browser and navigate to http://localhost:8080

Tasks

  • Please ensure you have Docker installed and running.
  • Open your preferred command line:

Tasks create ephemeral containers. Containers which are destroyed after a task has completed.

Build for release

$ npm run release
This will:
  • Build the production static assets directory (dist or docs, depending on the configuration).

Run all frontend unit tests

$ npm run test
This will:
  • Run all application specific and global frontend unit tests.

Create a new application

$ npm run create
This will:
  • Create an ephemeral container to run the task.
  • Build applications based on the config.json file.
  • New applications are built based on the 'masterTemplateDir' property.
  • If an application already exists, nothing will be overwritten.

Licence