History of Drowex

Darius Laurinčikas

Or how not to be afraid to make mistakes

About me

Lithuania Kaunas

Senior Developer @Source Bridge,  Heficed / IPXO

Darius Laurinčikas

Where can You find me?

Author of Drowex.com

About me

https://www.linkedin.com/in/darxx/

About me

https://twitter.com/darxx21

About me

https://github.com/darxx

About me

https://www.instagram.com/darius_meskenas/

About me

https://www.youtube.com/channel/UCJHtXS5JdCW1sCrXBdFCKTA

QR

Agenda

  • Unit testing Angular applications.
  • Make Enterprise development at home or how to make Single-click deployment.
  • How to make small projects to Enterprise development products.
  • Start small, thing Big. Evolve.

How to

  • Q&A
  • Q&A
  • Q&A

Text

Mistakes

Mindset

Lessons

Optimizations

Wide view about what I want to talk

About Pixel art

Pixel art is a form of digital art,

created through the use of the software.

How looks pixel art on walls.

How Drowex helps?

About Drowex

Counts pixels as stickers.
And can tell how many You will need.

Allows saving locally or share globally

and export pixel art to PDF.

About Drowex

Drowex was created ~ 6 years ago

Took a total of ~ 6 months to produce.

Publicly available.

But still under development.

About Drowex

Drowex started as a 24 hour project

It was written using AngularJS and simple HTML elements

Extreme programing

DRY - Don't repeat yourself

YAGNI - You aren't gonna need it

K.I.S.S - Keep it simple, stupid.
Or keep it short and simple

Methodology

Software patterns

Code discipline

Code trust

Mindset - Start small

SRP - Single-responsibility principle

Mindset - Think BIG

Mindset - Evolve

Mistakes

No unit tests and unit test are hard. I don`t have time....

No canvas HTML elements.

No authentication.

No pixel art sharing.

It was written as prototype.

Unit tests

Easy

Modules

Components

Pipes

Services

Directives

Medium

Hard

My first illustration of unit test

Mistakes

And I was testing AngularJS

Mistakes

Serving and deployments strategy - none

Mistakes

Drowex start to get bigger and more complex

CI and CD automations

SonarQube for code analysis

Unit testing

Docker container

Virtual machine

Code styling guide lines

Database

Nginx

SSL and Domain

Time for changes

Lessons learned

Switch from project to product development

Q&A

Lessons learned

Unit tests

Lessons learned

Unit tests

Lessons learned

If it is hard, do it more often.

Easy Unit testing

Lessons learned

Easy

Modules

Pipes

Directives

Dummy components

Easy Unit testing

Lessons learned

Easy

Pipes

Pipes

Directives

Dummy components

Unit testing

Lessons learned

Directives

Easy Unit testing

Lessons learned

Dummy components

Unit testing

Lessons learned

Dummy components

Unit testing

Lessons learned

Smart components

Unit tests

Lessons learned

Easy

Modules

Smart Components

Pipes

Services

Directives

Medium

Hard

Dummy components

How hard it is to unit test

Testing strategies

Lessons learned

Unit tests

Lessons learned

What to do if you are stuck.

Try to use a debugger on 9876

using google chrome and dev tools

After some time I found better ways

to write units test for Angular

From all test testBed was removed.

https://twitter.com/josepheames

Joe Eames

BIG THANKS TO

Lessons learned

Q&A

Lessons learned

Rewritte to Angular

Lessons learned

Lessons learned

If You can.
Don`t do angular migration from AngularJS

Sam Julien

https://www.youtube.com/watch?v=495KHr966e0

@samjulien

BIG Thanks

But if you do

Media Capture and Streams

FireBase Authentification

Cache

Audio

PWA

Sockets.io

Improvements

Lessons learned

Canvas

WEB API

Google Sign-in

Optimizations

PWA

ng add @angular/pwa

And small configurations on nginx, Angular and SSL

https://letsencrypt.org/

Optimizations

PWA - offline

 

Optimizations

PWA

Optimizations

PWA

Optimizations

PWA

Socket.io

Optimizations

Drowex

Printing

Optimizations

15165 DOM elements

Printing

Optimizations

1183 DOM elements

Printing

Optimizations

Lessons learned

CI and CD

Lessons learned

SonarQube

Lessons learned

Lessons learned

Docker

Optimizations

docker run -d -p 9000:9000 -p 8000:8000 --name portainer --restart always -v /var/run/docker.sock:/var/run/docker.sock -v portainer_data:/data portainer/portainer-ce:latest

Docker

Optimizations

docker stop portainer
docker rm portainer
docker run -d -p 9000:9000 -p 8000:8000 --name portainer --restart always -v /var/run/docker.sock:/var/run/docker.sock -v portainer_data:/data portainer/portainer-ce

Update portainer

Tips and tricks

Update gitlab

Tips and tricks

Update gitlab

Tips and tricks

Update gitlab

And it`s easy to go back if You need it.
Or keep it clean and delete it.

Q&A

Lessons learned

Sticky notes

Tips and tricks

If you want to stick sticky notes evenly to the wall pellet from the back.

https://www.self.com/story/youve-been-using-post-its-wrong-your-entire-life

Thank You

Kevin van Schaijk

Fanis Prodromou

Bonnie Brennan

Šarūnas Navickas

 Sander Elias

Thank You

Paulius and Vytas Daukšos

Pupils of Kaunas University of Technology Engineering Lyceum

Mija ir Stela Laurinčikaitės

https://www.inzinerijoslicejus.ktu.edu/

Q&A

Lithuania Kaunas

Senior Developer @Source Bridge,  Heficed / IPXO

Darius Laurinčikas

https://www.linkedin.com/in/darxx/

https://github.com/darxx

You can find me

https://www.instagram.com/darius_meskenas/

https://twitter.com/darxx21

Q&A

https://slides.com/dariuslaurincikas/drowex-history

https://drowex.com/

Drowex History

By Darius Laurinčikas

Drowex History

  • 495