SlideShare ist ein Scribd-Unternehmen logo
1 von 47
Luna
How to build and maintain
an application in Github
Arvanitis Panagiotis
Front-end engineer
Hello!
I am Panagiotis
Front-end engineer at Agile Actors
I love JavaScript/Node JS and Data visualizations.
Twitter: @rvpanoz
Github: github.com/rvpanoz
2
What is this talk about?
In this presentation I will talk about Luna.
A side project which I started a year ago.
Hope you like it! 😉
3
So.. what is Luna?
Luna is a desktop application that manages
npm dependencies through a modern UI.
4
Ag
en
da
Publishing
Application images
Community feedback
Result
Motivation
Why I started this project
Challenges
The making of
Branching model
Structure
Planning
Open source
Technology stack
Architecture
02
03 04
01
Motivation
● Understanding the needs
● The challenges
1
Why I started this project?
● Handle npm dependencies and running npm
commands through a User Interface (UI).
● The applications existed at the time were
incomplete or lack of features (ndm)
* ndm - https://github.com/720kb/ndm
7
● Help other developers and collaborate.
● Grow as a developer. Enhance my skills and
knowledge.
8
Why I started this project?
The
challenges
9
Create
something new
Create something that did
not exist as I would like it
to be..
10
Acceptance and
Usefulness
Make other dev’s lives easier
and to be embraced by the
community.
11
All in one
project
Combine latest technologies
into one project.
12
Publishing
● Application images
● Community feedback
● Result
2
14
15
16
17
18
● Twitter
● References
● Github
19
Community feedback
20
@RebeccaOrg
Npm cli project lead
21
@maybekatz
Npm cli core team
22
@bitandbang
devRel at Microsoft
23
● Awesome npm
https://github.com/sindresorhus/awesome-npm
● Electron apps
https://electronjs.org/apps/luna
● Detailed mention in npm weekly #192
https://medium.com/npm-inc/npm-weekly-192-npm-stats-are-back-meet-lu
na-publish-a-react-component-with-npm-a473c64f1135
● ArchLinux
https://aur.archlinux.org/packages/luna/
750+
stars
20+ Issues
from the community
1500+
clones
24
Problem has been solved!
● Handle npm dependencies fast - not typing the
commands by hand.
● Find updates and security issues immediately.
● Grow as developer.
25
Planning
● Open source
● Technology Stack
● Architecture
3
Open source
project
27
1
Licensing Clean code
2
Good README
3
Contributing
guidelines
4
Choosing the
technology
stack
28
ElectronJS
https://electronjs.org/
29
Why..?
- One of the best general desktop application framework
- Use web technologies
- Good documentation
- Maintainable
ReactJS
https://reactjs.org/
30
Why..?
- Most popular Web UI library (V of MVC)
- Very active development
ReduxJS
https://redux.js.org/
31
Why..?
- One of the most popular and interesting MVC implementation
- Encourages best practices (e.g predictability, aspect orientation)
RxJS
https://rxjs-dev.ïŹrebaseapp.com/
32
Why..?
- Business logic modeling and implementation in the form of stream
of actions
- Data transformation
- I/O and asynchronous computations management through
streams
Material UI
https://material-ui.com/
33
Why..?
- Implements Google’s Material design
- Ready to use React components
- Faster development
Webpack
https://webpack.js.org/
34
Why..?
- Bundling
- Code splitting
- Development server
So far.. so good!
Time for design.
35
Architecture
design
36
37
Main Process Renderer Process
● Running npm commands using
nodejs child_process module
● Packaging and distributing
● System logging
● Views (React)
● Business logic (RxJS)
● Predictable state management
(Redux)
● Testing (Jest)
Operating system
(Linux/Windows/macOS)
NodeJS
API
Electron IPC
API
NodeJS
API
IPC Electron
API
DOM
creates
communicates
Application architecture
38
Renderer Process (Web page)
Views
Business logic
RxJS
Predictable state
management
I/O
Side eïŹ€ects
Actions
A Unidirectional model
actions in
actions out
Listen for changes
actions out
Why this architecture?
39
1. Testable
2. Maintainable
3. Scalable
4. Clear responsibilities and concerns
The making of
● Branching model
● Structure
4
The branching model
GitFlow WorkïŹ‚ow:
● Two main branches
● Supporting branches
41
Why..?
- Changes made through
feature branches
- Continuously support
previous versions
- Familiarity
Main branches:
● Master
● Develop
42
Supporting branches:
● Feature
● Release
● HotïŹx
43
The project structure
44
Why..?
- Clean
- Similar content into separate
folder
- Easy to ïŹnd things
4 main folders:
● App folder
● ConïŹgs folder
● Internals
● Resources
45
app
MainProcess ComponentsStore Models Reducers
ContainersNpm API Presentationalmain.js
App folder structure
The next day..
● Collaborate with others passionate developers
46
47
Thanks!
Any questions?

Weitere Àhnliche Inhalte

Was ist angesagt?

Mume13: les 6
Mume13: les 6Mume13: les 6
Mume13: les 6
Erik Duval
 
VladimirSlaykovskiy.resume.doc
VladimirSlaykovskiy.resume.docVladimirSlaykovskiy.resume.doc
VladimirSlaykovskiy.resume.doc
Vladimir Slaykovskiy
 

Was ist angesagt? (9)

Mume13: les 6
Mume13: les 6Mume13: les 6
Mume13: les 6
 
VladimirSlaykovskiy.resume.doc
VladimirSlaykovskiy.resume.docVladimirSlaykovskiy.resume.doc
VladimirSlaykovskiy.resume.doc
 
Full stack-web-design
Full stack-web-designFull stack-web-design
Full stack-web-design
 
The Full Stack Web Development
The Full Stack Web DevelopmentThe Full Stack Web Development
The Full Stack Web Development
 
React tech talk @ CMU
React tech talk @ CMUReact tech talk @ CMU
React tech talk @ CMU
 
Code driven development in drupal
Code driven development in drupalCode driven development in drupal
Code driven development in drupal
 
Eric tucker - Eliminating "Over the Fence"
Eric tucker - Eliminating "Over the Fence"Eric tucker - Eliminating "Over the Fence"
Eric tucker - Eliminating "Over the Fence"
 
Introducing the JAQ (Java, Angular, Sql/NoSQL) Stack
Introducing the JAQ (Java, Angular, Sql/NoSQL) Stack Introducing the JAQ (Java, Angular, Sql/NoSQL) Stack
Introducing the JAQ (Java, Angular, Sql/NoSQL) Stack
 
SAPO Campus - P3 Presentation
SAPO Campus - P3 PresentationSAPO Campus - P3 Presentation
SAPO Campus - P3 Presentation
 

Ähnlich wie Luna - How to build and maintain a github project

Agileand saas davepatterson_armandofox_050813webinar
Agileand saas davepatterson_armandofox_050813webinarAgileand saas davepatterson_armandofox_050813webinar
Agileand saas davepatterson_armandofox_050813webinar
Roberto Jr. Figueroa
 

Ähnlich wie Luna - How to build and maintain a github project (20)

Workshop About Software Engineering Skills 2019
Workshop About Software Engineering Skills 2019Workshop About Software Engineering Skills 2019
Workshop About Software Engineering Skills 2019
 
Building Ontologies from Concept Maps
Building Ontologies from Concept MapsBuilding Ontologies from Concept Maps
Building Ontologies from Concept Maps
 
Frontend War: Angular vs React vs Vue
Frontend War: Angular vs React vs VueFrontend War: Angular vs React vs Vue
Frontend War: Angular vs React vs Vue
 
Paving the path towards platform engineering using a comprehensive reference...
Paving the path towards platform engineering  using a comprehensive reference...Paving the path towards platform engineering  using a comprehensive reference...
Paving the path towards platform engineering using a comprehensive reference...
 
APIDays SF 2019: Managing multiple api stacks on serverless
APIDays SF 2019: Managing multiple api stacks on serverlessAPIDays SF 2019: Managing multiple api stacks on serverless
APIDays SF 2019: Managing multiple api stacks on serverless
 
Acjim acmacs presentation
Acjim acmacs presentationAcjim acmacs presentation
Acjim acmacs presentation
 
Angular (v2 and up) - Morning to understand - Linagora
Angular (v2 and up) - Morning to understand - LinagoraAngular (v2 and up) - Morning to understand - Linagora
Angular (v2 and up) - Morning to understand - Linagora
 
AngularJS in Production (CTO Forum)
AngularJS in Production (CTO Forum)AngularJS in Production (CTO Forum)
AngularJS in Production (CTO Forum)
 
Agileand saas davepatterson_armandofox_050813webinar
Agileand saas davepatterson_armandofox_050813webinarAgileand saas davepatterson_armandofox_050813webinar
Agileand saas davepatterson_armandofox_050813webinar
 
Introduction to Web Frameworks
Introduction to Web FrameworksIntroduction to Web Frameworks
Introduction to Web Frameworks
 
Web Applications
Web ApplicationsWeb Applications
Web Applications
 
Polymer 101
Polymer 101Polymer 101
Polymer 101
 
React for non techies
React for non techiesReact for non techies
React for non techies
 
Resume
ResumeResume
Resume
 
OEP PPT 1
OEP PPT 1OEP PPT 1
OEP PPT 1
 
qadeer intern report.pdf
qadeer intern report.pdfqadeer intern report.pdf
qadeer intern report.pdf
 
React for Non Techies
React for Non TechiesReact for Non Techies
React for Non Techies
 
React for non techies
React for non techiesReact for non techies
React for non techies
 
4th pdf off page seo.pdf
4th pdf off page seo.pdf4th pdf off page seo.pdf
4th pdf off page seo.pdf
 
How Responsive Do You Want Your Website?
How Responsive Do You Want Your Website?How Responsive Do You Want Your Website?
How Responsive Do You Want Your Website?
 

KĂŒrzlich hochgeladen

%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...
%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...
%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...
masabamasaba
 
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
VictoriaMetrics
 
Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...
Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...
Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...
Bert Jan Schrijver
 
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
masabamasaba
 
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
masabamasaba
 

KĂŒrzlich hochgeladen (20)

call girls in Vaishali (Ghaziabad) 🔝 >àŒ’8448380779 🔝 genuine Escort Service đŸ”âœ”ïžâœ”ïž
call girls in Vaishali (Ghaziabad) 🔝 >àŒ’8448380779 🔝 genuine Escort Service đŸ”âœ”ïžâœ”ïžcall girls in Vaishali (Ghaziabad) 🔝 >àŒ’8448380779 🔝 genuine Escort Service đŸ”âœ”ïžâœ”ïž
call girls in Vaishali (Ghaziabad) 🔝 >àŒ’8448380779 🔝 genuine Escort Service đŸ”âœ”ïžâœ”ïž
 
%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...
%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...
%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...
 
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital TransformationWSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
 
Direct Style Effect Systems - The Print[A] Example - A Comprehension Aid
Direct Style Effect Systems -The Print[A] Example- A Comprehension AidDirect Style Effect Systems -The Print[A] Example- A Comprehension Aid
Direct Style Effect Systems - The Print[A] Example - A Comprehension Aid
 
Harnessing ChatGPT - Elevating Productivity in Today's Agile Environment
Harnessing ChatGPT  - Elevating Productivity in Today's Agile EnvironmentHarnessing ChatGPT  - Elevating Productivity in Today's Agile Environment
Harnessing ChatGPT - Elevating Productivity in Today's Agile Environment
 
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
 
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
 
WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...
WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...
WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...
 
Architecture decision records - How not to get lost in the past
Architecture decision records - How not to get lost in the pastArchitecture decision records - How not to get lost in the past
Architecture decision records - How not to get lost in the past
 
Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...
Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...
Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...
 
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
 
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
 
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview
 
VTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learnVTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learn
 
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
 
Define the academic and professional writing..pdf
Define the academic and professional writing..pdfDefine the academic and professional writing..pdf
Define the academic and professional writing..pdf
 
Right Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsRight Money Management App For Your Financial Goals
Right Money Management App For Your Financial Goals
 
%in Harare+277-882-255-28 abortion pills for sale in Harare
%in Harare+277-882-255-28 abortion pills for sale in Harare%in Harare+277-882-255-28 abortion pills for sale in Harare
%in Harare+277-882-255-28 abortion pills for sale in Harare
 
WSO2CON2024 - It's time to go Platformless
WSO2CON2024 - It's time to go PlatformlessWSO2CON2024 - It's time to go Platformless
WSO2CON2024 - It's time to go Platformless
 
call girls in Vaishali (Ghaziabad) 🔝 >àŒ’8448380779 🔝 genuine Escort Service đŸ”âœ”ïžâœ”ïž
call girls in Vaishali (Ghaziabad) 🔝 >àŒ’8448380779 🔝 genuine Escort Service đŸ”âœ”ïžâœ”ïžcall girls in Vaishali (Ghaziabad) 🔝 >àŒ’8448380779 🔝 genuine Escort Service đŸ”âœ”ïžâœ”ïž
call girls in Vaishali (Ghaziabad) 🔝 >àŒ’8448380779 🔝 genuine Escort Service đŸ”âœ”ïžâœ”ïž
 

Luna - How to build and maintain a github project