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