How PWA can be useful rather than developing a Simple web Application [closed] - web

Closed. This question is opinion-based. It is not currently accepting answers.
Want to improve this question? Update the question so it can be answered with facts and citations by editing this post.
Closed 1 year ago.
Improve this question
I know I am very bad at asking a question so please tell me rather than downvote me...thanx
Q1: How Is Progressive Web Application Useful?
Q2: What Type of Application Should be Built using PWA is there any Specific Application which contains a lot of CPU utilization or Simple Static Pages with just small interaction with Server?
Q3: What should be the Application Architecture? In General?

There are a lot of reason for using PWA rather than web-apps or native applications.
A1:To answer your first question there are some articles found on internet, here I recommend some of them to read:
Google Developers PWA documentation
What is PWA?
Important tips about PWA
A2: There are no limitation and restriction on app you wanna develop. (Also you should pay attention to the key things like caching, which are considerable and important in native/web apps, too.)
A3: The architecture is very similar to web-apps except it must have some additional files:
manifest.json (Which is used to declare something like application name, the icons and etc. and it must be placed in the root of the project)
serviceWorker.js (Which gives you additional features like push notification, background works and etc.)
NOTE: As it obvious your Progressive Web App should be responsive to support different resolution of mobile screens.

PWA is not a single technology or a framework , set of features in web which helps to improve your application progressively.
It means if you have a modern browser you will get an awesome user experience else those features just not support it , your application will have existing features remains as it is.
Let's talk about what all the features we can use to enhance our existing or new web application .
You can bring native look and feel of mobile device apps on your web
pages. It's not the responsiveness of web page but you can access the
native features such as camera , accessing geo location, push
notifications.
Offline Capability when your internet connection get lost through caching.
Background Synchronization of data
Icon on the home screen , you don't need to install the application
from the app store to place it on your home screen.
There are three import things I want to summarize about the progressive web application.
Reliable : Application will load instantly even in a uncertain condition and provide offline functionality through caching.
https://developers.google.com/web/progressive-web-apps/#reliable
Fast : Respond quickly as possible based on the user interactions.
https://developers.google.com/web/progressive-web-apps/#fast
Engaging : Feels like a native app on mobile devices.
https://developers.google.com/web/progressive-web-apps/#engaging

Q1: Progressive web applications (particularly the service worker part of them) are useful because they can (a) be very fast and (b) work offline. Using a service worker to cache resources (HTML, JS, CSS) on the user's device can create almost instant page-load times on subsequent visits to your site. In addition, this can make your site available even without a network connection. Progressive web apps (with a manifest file) can also be installed on the device home screen, making them easily accessible, like native apps.
I'm not sure I understand Q2 and Q3, so I'll leave those for someone else to answer.

Related

Line between Back-end and Front-end in web app development [closed]

Closed. This question is opinion-based. It is not currently accepting answers.
Want to improve this question? Update the question so it can be answered with facts and citations by editing this post.
Closed 4 years ago.
Improve this question
I have been learning full stack web development for a while now. But I am having trouble to understand where would the job of back-end developer stops, and front end begins when the work is separated.
I understand the back-end developer builds API that the front end developer will interact with, but I am confused regarding routing and (using nodeJS) who would write the equivalent of what is in the app.js file.
Finally, If you do back-end only, then you would not write any 'views.ejs' files?
Frontend development deals solely with the parts of a web application that a user interacts with, and requires HTML, JavaScript and CSS. The backend deals with the server, the application logic, and database.
If a single frontend developer is building a simple web application, they will have to create both the front end and the backend of the application. This may just require creating routes to render pages. Most freelance web developers do this.
For much bigger applications (in bigger organisations), the duties of the frontend developer and the backend developer are much more distinct. A backend developer will be responsible for building the actual application logic, checking for authentication and authorization, managing the database etc. The frontend developer in this organisation will work solely to design the interface that the user interacts with. They will not be required to even render any page on the backend. This is the job of the backend developer.
In short, a front-end developer may have some basic knowledge about the backend, but a backend or full stack developer will be required to build all the features of the application that a user does not see.
You read more about the difference using the following link: http://blog.teamtreehouse.com/i-dont-speak-your-language-frontend-vs-backend
The difference between back-end and frond-end developers is the program they wrote. Front-end deal mostly with the physical apparance of the website. How it looks and what user can physically feel while using the website. Front end languages include HTML, CSS, and Javascript.
While back-end developers focus mainly on the integration of server, web applications, and logic of the stylish web design made by front-end developers. They are in charge of creating a communication link between the website, the browser and the database servers.

Is there any open source alternative to talky.io? [closed]

Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
We don’t allow questions seeking recommendations for books, tools, software libraries, and more. You can edit the question so it can be answered with facts and citations.
Closed 1 year ago.
Improve this question
Is there any open source alternative to talky.io? where client code and all server side code is available.
I just double checked and it seems the priologic team are keeping tawk.com code behind a paywall, just like talky.io.
In the webRTC ecosystem, vendors either focus on
an application, and the Backend is hidden (think Skype, or bistri, even though bistri pivoted to propose an API as well.),
a PaaS and
then both the sever code is hidden and you won't have an
application, at best a demo, because they do not focus on any
vertical and do no implement business logic (think AWS in general, or tokbox, temasys for webRTC)
propose consulting/app development and will provide a complete
application most often open source, but keeping some key components
(priologic: mobile SDK + app, &yet: app, algoworks, ...) behind a
paywall. They usually team up with a Paas and or Hardware vendor to
provide more compelte/scalable solution to their client
(priologic/oracle, ...).
It is very unlikely, and I wouldn't know of any, that there were a vendor that would provide a full solution open source. It is still too complicated to have a non commercial entity provide one. The ones which do provide a full solution do so for a limited scope.
In any case, an application is always focussed on a use case. Even though the underlying infrastructure might be the same, and the BE/client API might be the same, an app for contact center, and app for social dating, and an app for conferencing will be quite different because they implement a quite different business logic and address quite different market. It is reasonable NOT to expect a full stack, but to have only the top most layer left to implement.
I put a list of vendors and products there, but it s a little bit raw. So here is a recipe to build a free/open-source solution, and then where to look to upgrade:
mandatory: open source signaling server (easyrtc, signalmaster, peerjs-server, rtc.io, ...)
mandatory: BE API (easyrtc, simplertc, peerjs, rtc.io respectively)
optional but highly recommended: add the free turn server rfc5766, or the most advanced version "coTurn". Some of the open source server and library propose examples or how to to support this TURN server by yourself.
optional: a client API that brings you closer to your use case,
optional: a free plugin to support IE and Safari (temasys free plugin),
optional: a media server if you need to host many-to-many calls or conferences (MCU or SFU) (licode, meteecho's janus, medooze, kurento, jitsi's videobridge)
optional: a SIP gateway to connect to VoIP and/or pone by extension (PSTN).
and ... that's about as far as you can go with open source / free libs today. You might hit a scalability problem quite fast depending on your traction.
A next step would be to get hosted servers, but it's not free anymore.
Separate servers:
ICE/TURN/STUN: See xirsys/twilio for hosted solution,
Media server: see dialogic, radysis, for hardware and meedoze, Jitsi, acano, pexip, openclove for software/hosted solutions,
Full Paas including all of the above:
tokbox (beware of streamed minutes billing if you have large conferences, has recording and some features temasys does not have yet)
temasys
some of the media server vendors also market themselves as PaaS. I have not tested, so I can't comment or recommend.
If you want to connect to SIP/phone, you will need different vendors as hither temasys nor tokbox provide interoperability today.
You could have a look at jitsi https://jitsi.org/, which is an opensource solution for private communication and also serves as a video conference tool for the browser.
You could try Subrosa (latin for "under the rose"). According to https://subrosa.io/source: "The Subrosa client and server are both open source and licensed under GPLv3."
Would be better if the server component was GNU AGPL 3.0, to make sure anyone running a server makes their code changes available for re-use, but at least both ends are free code.

What kind of apps can be built using node.js other than real time apps (like chat or multiplayer gaming) [closed]

Closed. This question is opinion-based. It is not currently accepting answers.
Want to improve this question? Update the question so it can be answered with facts and citations by editing this post.
Closed 9 years ago.
Improve this question
Is node.js is only for real time applications like chat or multiplayer games? I know little bit of PHP, Python and ASP.
But I love JS the most. But I am interested in building particular type of application such as-
Content based app (like CMS, forums or community sites)
Utility tools (web2pdf converter, image editing or other frequently used tools)
Business tools (SEO analysis tools etc)
Is node.js only for real time applications??
Edit 0- Can you please give examples of node apps other than real time applications
Edit 1 : can node be used for IO operations or serve static pages over http. Isn't it just another web technology like PHP or ASP.NET
Edit 2 : What can node do that PHP can't. Also anything that PHP can and Node can't.
Node.js is useful for any application that does not involve CPU-bound work.
Node.js is basically just javascript, including the asynchronous aspect of javascript, running outside of the browser. The basic framework it comes with allows you to setup a server really easily, and that's what most people use it for, although it can do most things any other server side language can do (File IO, Networking, Multithreading, etc).
Node.js can be used for most applications, as it's expandable via modules, and has a great developer community. You can see the different companies who use it at http://nodejs.org/industry/.
Some great tutorials can be found by Googling node + the type of project you want to build and you can also find a list of resources in the Readme of their github https://github.com/joyent/node. After you feel comfortable with node, then browse some github node.js repositories, and figure out which modules you want to work with to make your project. Then keep learning!
Javascript is a great language, and node.js is an awesome technology. Good luck!
Node.js is farmost, one of the best technology of its kind. You can build anything out of Node.js, scaling from realtime applications to normal websites. But what makes Node.js standalone from crowd, is its way of handling users request and response. In simple term Node.js come into play when there is lods and lods of traffic coming into your website.

Is there a social networking protocol [closed]

Closed. This question needs to be more focused. It is not currently accepting answers.
Want to improve this question? Update the question so it focuses on one problem only by editing this post.
Closed 3 years ago.
Improve this question
Social networking is great, but there is something fundamentally wrong with the way social networking is implemented today in most popular services. I'll put it in this example: Imagine that there is no SMTP, and consequently, it is globally assumed and accepted that you can only send email to addresses on the same domain. The result would be the emergence of a single email service, let's call it emailbook.com, which we all have to subscribe to, if we really want to communicate with the world.
This is what's happening with social networking today. You HAVE to use the same service your fiends/colleagues are using to talk to them.
I would like to be able to put up my own social site, invite my friends who trust me, share amongst us, but still be able to share with the world at large.
What are the chances of this scenario happening in the future? What does it take?
There sure is, and not just one! The future you wanted is now here.
By the time of the question, back in the end of 2010, OStatus had already existed for half a year, and the year before that there was OpenMicroBlogging (OMB), and at about the same time as OMB, the XMPP XEP 0277.
Since then several other protocols have popped up, such as diaspora* just half a year later, and later some smaller players like Friendica's DFRN and HubZilla's Zot.
OStatus never left draft status, but the big buzz[0] these days is about ActivityPub, which is a W3C recommendation since January 2018 and came out of the Social WG mentioned by #keithjgrant in his answer. There is a multitude of implementations[1], finding their niches with different use cases like microblogging, blogging, link sharing, picture sharing, video sharing and audio sharing.
There is also the collection of blog-oriented protocols described on https://indieweb.org/.
[0] pun intended
[1] Diaspora and GNU Social, although shown at fediverse.party, do not implement ActivityPub. The other applications shown do. There are several other applications not shown there, such as FunkWhale, Plume, WriteFreely, Prismo ... There is no terse and complete overview of all of them, but several are listed at https://switching.social/ and https://wedistribute.org/ publishes news and interviews related to all of them.
There are a few. One Social Web uses XMPP which is open and decentralized like SMTP.
Check it out.
http://onesocialweb.org/
I absolutely agree. The good news is, yes, things are happening. Even better, they are happening in the W3C, which means open standards.
The W3C now has a Social Web working group. They are actively working on a handful of standards. The biggest of these seems to be the Social Web Protocol.
Today, they also posted the W3C Recommended spec for Webmention, which is sort of an improved version of the old pingbacks that used to be used on blogs, this time built on HTTP. It allows a post to notify another page on the web when it references it. There are already a number of libraries and services that implement this today.
I think you should take a look at http://code.google.com/apis/opensocial/. It is a spec developed by google and other social networking players. It supports interoperability and much more.
OpenSocial is currently being developed by a broad set of members of the web community. The ultimate goal is for any social website to be able to implement the API and host 3rd party social applications. There are many websites that support OpenSocial, including hi5, LinkedIn, MySpace, Netlog, Ning, orkut, and Yahoo!

Recommended implementation for a desktop web monitoring client? [closed]

Closed. This question is opinion-based. It is not currently accepting answers.
Want to improve this question? Update the question so it can be answered with facts and citations by editing this post.
Closed 8 years ago.
Improve this question
Background
I have a business idea, one component of which involves a client that would be downloaded & installed by thousands of users via a web page.
Application Requirements
Version 1:
The application must:
monitor internet usage on the user's desktop with the following areas monitored:
browser used,
hours used
sites accessed
takes into account which browser tab is 'active'
Produce a report of this usage (in CSV or another easily exportable format)
It needs to be easily monitored by the user (e.g., in Windows via an icon in the system tray allowing the user to pause or stop the program).
Easily upgradable via automatic updates.
Needs to be lightweight with regards to memory usage.
Needs to be easily and quickly installed,
Must be able to be uninstalled completely.
Cannot adversely impact browser or user's system performance experience
For Version 2:
be able to present graphical outputs (pie & bar charts)
be multi-platform (version 1 will target Windows only)
Integrate an online component
Question
Given these requirements, what technical implementation would you recommend, and what platform/language architecture would you recommend? The key aspects are functionalities and broadly defined low impact on users. ETA or cost are less critical.
Sounds like C# would suit your needs, as long as it's limited to a Windows client.
I built something very similiar to this last year. I used C#. Initially it leveraged some of the 3.5 framework, but I had to scale it back to the 2.0 framework due to installation size restrictions. It's currently monitoring about 13,000 machines. collecting and sending back to a report server around 3MB of data per minute.
The client machines range from Pentium 4 boxes with 256MB of RAM running XP on up to dual core 2GB machines.
The app I built was not to be touched by the end user, so it runs as a combination of a windows service and a browser helper object plug in for IE. The BHO was necessary to capture exactly what was going on in the browser.
The only real challenges were in making it work under XP and Vista (all service pack levels) and in IE 6 and 7. XP and Vista have different security implications to take into account; IE 6 and 7 also have different access models.
Finally, we punted on dealing with Firefox or other browsers because the customer just didn't care about it.
UPDATE
Firefox only supports javascript, c++, and xul to code extensions in; using c# would be a complete PITA. I'd probably try javascript if it would do what I needed just because it's easier.
As far as Chrome, they only recently started supporting extensions (March 19,2009). You have to change the shortcut startup properties to even be able to run them. So, I'd probably skip that browser until it matures a bit. I imagine there will be a lot of changes to how plugins are built for it over the next year.
Concerning the amount of data per minute, that's an aggregate value. Each individual client only checks in once every fifteen minutes or so; or upon reconnect to the network when working disconnected. So, individual traffic is pretty low and has no impact on the user experience.
Firewalls
The reason a firewall really doesn't matter for us is that the data is transmitted back to our reporting server over port 80 using web services. If 80 is blocked, then they can't browse anyway so there's nothing to collect... As far as bandwidth, limit what you collect and broadcast back out. XML with long descriptive attribute / value names are NOT your friend.
Qt and C++ are good for cross-platform clients -- esp. if they need to be "memory frugal" in a way that no solution in a garbage-collected language (i.e. basically all others;-) usually is.
We need more information:
Is Time to develop an issue? With C#, you can quickly develop such an application; but it wouldn't necessarily have the same low level performance as C++. You could develop certain parts in C++ (the memory intensive bits) and others in C#, but then your clients would have to have the .NET framework installed; not to mention they could reverse-engineer the C# parts rather easily.
There's a project triangle, and we need to know which two are most important to you:

Resources