Code Monkey home page Code Monkey logo

surfable-app's Introduction

Surfable

License: Apache 2.0 Twitter: farbodsaraf Twitter: sandochee

Install any website as an app for a quick access ๐Ÿ–ฅ๏ธ

Surfable.app is a website to be able to install any website as an application. It is built with Express.js and uses google-play-scraper package to search in Google Play Store and to get the metadata.

๐Ÿ‘‰ Get started

๐Ÿค” How it works

  • Surfable.app creates a Progressive Web App for each website that redirects to an URL
  • It uses Google Play Store as a source of data by using apps' names, icons and developer website
  • The search also works using Google Play Store data
  • Because it uses the developer website as the URL of the app, some URLs can be wrong, but it can be corrected (see the documentation below)
  • Some links may be missing on the search (you can make a pull request to add them)

๐Ÿ“– How to add or update a website

If you don't know Javascript, just open an issue explaining what link you would like to add / edit. Otherwise just follow the steps below.

Update a website

If you realize that a website redirects to the wrong URL you can correct it by following these steps:

  1. Search for the app name on Surfable.app
  2. Copy the appId from the URL for example in https://surfable.app/pwa/com.sandoche.gitnews/ it would be com.sandoche.gitnews
  3. Edit the following file src/data/websites.js
  4. Check if the appId does not already exist, if it does, edit the object and if it does not exsit, add a new object like below to the array:
{
  title: 'Twitter',
  appId: 'com.twitter.android',
  developerWebsite: 'https://twitter.com/',
  icon: 'https://lh3.googleusercontent.com/wIf3HtczQDjHzHuu7vezhqNs0zXAG85F7VmP7nhsTxO3OHegrVXlqIh_DWBYi86FTIGk',
},
  1. Note that omitting one of the fields will take the default value from Google Play. You can for example omit the icon field, and the logo will be retrieved from Google Play.
  2. Then just do a pull request

Add a website that does not exist

If a website could not be found in Google Play, it needs to be added manually.

  1. Edit the following file src/data/websites.js
  2. Check if the URL you would like to add does not exist, if it does edit the object, if it does not exist, add a new object like below to the array:
{
  title: 'Kanbanote',
  developerWebsite: 'https://www.kanbanote.com/board',
  icon: 'https://www.kanbanote.com/assets/app/images/icon_512x512.png',
  appId: 'www.kanbanote.com'
},
  1. Note that the appId can be anything except the ones that are already used on Google Play, so putting the website address is a safe choice, also the icon should have a size of 512x512
  2. Then just do a pull request

โš™๏ธ How to use

Clone repo:

git clone [email protected]:sandoche/Surfable-app.git

On Mac:

Install

npm install

Usage

npm run start

Development

npm run dev

Deploy to Heroku

Since this project scraps data from Google Play, the number of queries are limited per server, therefore in case of problem we recommend you to host your own instance of Surfable.

Deploy

Deploy using Docker

docker build . -t surfable
docker run -p 3000:80 surfable

Authors

๐Ÿ‘ค Sandoche ADITTANE & Farbod SARAF

๐Ÿค Contributing

Contributions, issues and feature requests are welcome!

โญ๏ธ Show your support

Give a โญ๏ธ if this project helped you!

โ˜•๏ธ Buy me a coffee

If you like this project, feel free to donate: https://www.buymeacoffee.com/surfable

๐Ÿ“ License

Copyright ยฉ 2022 Sandoche ADITTANE & Farbod SARAF
This project is Apache 2.0 licensed.

surfable-app's People

Contributors

sandoche avatar farbodsaraf avatar ddanielcruzz avatar sorianog avatar addisonjames avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.