1658948400
Recentemente, houve diferentes implementações para evitar spam de diferentes serviços da web. Uma dessas implementações está usando um recurso reCAPTCHA. Um reCAPTCHA é um teste automatizado para determinar se o usuário de um aplicativo da Web é um humano ou um bot. Dessa forma, privilégios ou acessos são concedidos apenas a usuários humanos, reduzindo assim o uso indesejado.
Neste tutorial, os leitores aprenderão o que são reCAPTCHAs e como implementá-los em uma aplicação web.
Um reCAPTCHA é um CAPTCHA(Teste de Turing Público Completamente Automatizado para Separar Computadores e Humanos) que é gratuito, fácil de adicionar e um recurso avançado de segurança do site de propriedade do Google. Ele foi desenvolvido para gerenciar o uso indesejado de sites por bots e evitar spam, implementando várias técnicas para identificar se um usuário de página da Web é um humano ou um bot. Essas técnicas envolvem apresentar ao usuário um teste que é fácil para humanos resolverem, mas difícil para bots ou software malicioso verificar. A implementação desse recurso de segurança em uma página da Web evita o abuso do site enquanto ainda permite que usuários humanos usem o site como deveriam, ou seja, usuários legítimos podem realizar suas atividades normais de acesso e utilização do site após passar no teste reCAPTCHA. O GIF abaixo contém exemplos de tipos de reCAPTCHA que você pode ter encontrado em uma página da web:
A implementação do recurso de segurança reCAPTCHA em um site fornecerá os seguintes benefícios:
No geral, os reCAPTCHAs são seguros, pois não possuem padrões previsíveis no teste selecionado apresentado ao usuário.
Ao longo do tempo, houve desenvolvimentos nas versões do reCAPTCHA, com cada nova versão adicionando uma nova técnica de teste do usuário. Até agora, o Google lançou três versões do reCAPTCHA; v1, v2 e v3.
Para esta versão, o reCAPTCHA monitora o comportamento do site do usuário. Caso o usuário utilize o site de forma suspeita, é apresentada a imagem reCAPTCHA; caso contrário, eles são apresentados com a variante checkbox.
Para demonstrar o recurso reCAPTCHA, teremos um formulário que utiliza um CAPTCHA para permitir que apenas usuários legítimos enviem dados. Para seguir este tutorial, clone o código do formulário inicial do repositório GitHub e execute npm install
no diretório do projeto para instalar todas as dependências necessárias.
Precisaremos de duas coisas: a primeira, uma chave de API para acessar o reCAPTCHA e a segunda, a react-google-recaptcha
dependência. Para obter sua chave de acesso, navegue em seu navegador até aqui :
Nesta página, somos obrigados a inserir o título de nossa chave no Label
campo. Para o tipo reCAPTCHA, usaremos a variante v2 “Não sou um robô”. No campo Domínio, digitaremos “localhost” e, por fim, clicaremos no botão “Enviar” para gerar a chave. Copie as chaves geradas, pois as usaremos em nossa aplicação. Em seguida, instale a react-google-recaptcha
dependência com o seguinte comando na CLI:
npm install --save react-google-recaptcha
Após a conclusão da instalação, podemos importar e usar este pacote em Index.js
:
import ReCAPTCHA from "react-google-recaptcha";
Em seguida, adicione o ReCAPTCHA
componente no formulário logo abaixo do botão de login:
//....
<input
type="text"
placeholder="Doe"
value={value}
onChange={(e) => {
setValue(e.target.value);
}}
/>
</span>
<button className="submit">Log in</button>
<ReCAPTCHA sitekey="your app site key"/>
O ReCAPTCHA
componente requer uma sitekey
propriedade para poder fazer uso dele. Agora, se executarmos a aplicação com o npm run dev
comando, obteremos um resultado semelhante ao da imagem:
O ReCAPTCHA
componente nos permite personalizar o comportamento e a aparência do ReCAPTCHA usando diferentes propriedades. Algumas dessas propriedades incluem:
light
ou dark
. Por padrão, o reCAPTCHA é exibido usando um tema claro, mas adicionar uma theme
propriedade com um valor de dark
renderizará um reCAPTCHA de aparência escura.compact
, normal
ou invisible
. Ele especifica o tamanho do reCAPTCHA ou determina se o reCAPTCHA seria invencível.O OpenReplay é um conjunto de reprodução de sessão de código aberto que permite ver o que os usuários fazem em seu aplicativo da Web, ajudando você a solucionar problemas mais rapidamente. O OpenReplay é auto-hospedado para controle total sobre seus dados.
Comece a aproveitar sua experiência de depuração - comece a usar o OpenReplay gratuitamente .
Para o formulário, queremos que o usuário possa enviar apenas quando tiver concluído o reCAPTCHA. Sempre que um usuário conclui um reCAPTCHA, um token é gerado. Este token é válido por dois minutos e só pode ser usado uma vez. Acessamos esse token em nosso aplicativo para permitir que o usuário envie o formulário após concluir o reCAPTCHA. Para capturar este token, usaremos o hook useRef do React:
//first we add an import for useRef
import { React, useState, useRef } from "react";
Após isso, criaremos uma variável onde armazenaremos o valor do token, usando useRef
:
const getCaptchaRef = useRef(null);
Em seguida, adicione esta variável à ref
propriedade do reCAPTCHA
componente:
<ReCAPTCHA
sitekey= "your site key here"
ref={getCaptchaRef}
/>
A ref
propriedade retorna diferentes funções auxiliares. Algumas dessas funções e seus propósitos correspondentes incluem:
excecuteAsync()
: Esta função envia uma solicitação que retorna o token ou um erro (se ocorrer). No entanto, essa função é aplicável apenas a reCAPTCHAs invisíveis. Para reCAPTCHA visível, a getValue()
função é usada para retornar o token.getValue()
: como o nome indica, esta função retorna o valor do campo reCAPTCHA.reset()
: Isso é usado para redefinir o reCAPTCHA e é aplicável no caso de verificações subsequentes reCAPTCHA
.Podemos usar o ref
para obter nosso token, conforme mostrado abaixo:
<ReCAPTCHA
sitekey= "your site key"
theme="dark"
ref={getCaptchaRef}
onChange={() => {
reCaptchaValue();
}}
/>
Aqui, adicionamos uma função na propriedade do nosso componente onChange
. Usaremos esta função para definir o valor do nosso token:
const reCaptchaValue = async () => {
const token = getCaptchaRef.current.getValue();
};
Em seguida, devemos verificar o token gerado antes de habilitar o recurso de envio. Para fazer isso, precisamos fazer uma POST
solicitação para https://www.google.com/recaptcha/api/siteverify
usar o Node.js no back-end. Crie um novo arquivo, Server.js
, no diretório raiz do seu aplicativo. Para o servidor, precisaremos de duas dependências; Axios
para lidar com nossa POST
solicitação e Express
gerenciar as rotas do servidor. Podemos instalar essas dependências com os seguintes comandos da CLI:
npm i express axios cors
Em seguida, crie um arquivo Server.js
no diretório raiz da pasta do projeto. Em Server.js
, digite o seguinte código:
const express = require("express");
const axios = require("axios");
const cors = require("cors");
const router = express.Router();
const app = express();
const port = 5000;
app.use(cors());
app.use(express.json());
app.use(express.urlencoded({ extended: true }));
app.use("/", router);
router.post("/status", async (req, res) => {
const { token } = req.body; // get token from the request we will create in index.js
const secret = "SITE SECRET";
await axios.post(
`https://www.google.com/recaptcha/api/siteverify`, // URL
{
secret: secret,
response: token,
}, // URL parameters
);
//return response based on the status of the post request
if (res.status(200)) {
res.send(true);
} else {
res.send(false);
}
});
app.listen(port, () => {
console.log(`server is listening on ${port}`);
});
No código acima, criamos um servidor que roda na porta 5000 e escuta route /status
. Usando este servidor, faremos uma solicitação de postagem para determinar se o token é válido e retornaremos uma resposta. Se o token for válido, o servidor retornará uma resposta adequada. Caso contrário, ele retornaria uma resposta false
. Abra o terminal e inicie o servidor com node Server.js
.
Com isso em vigor, iniciaremos nossa solicitação index.js
em nossa reCaptchaValue
função, conforme mostrado abaixo:
const [valid, setValid] = useState(false)
const reCaptchaValue = async () => {
const token = getCaptchaRef.current.getValue();
console.log(token);
await axios
.post("http://localhost:5000/status", {
response: token,
})
.then((res) => {
console.log(res);
setValid(res.data)
})
.catch((err) => {
console.log(err);
});
};
No código, fizemos uma solicitação de postagem para a URL do nosso servidor com o token retornado pelo reCAPTCHA. Em seguida, definimos o valor de um estado valid
igual ao res.data
retornado do servidor, "true" ou "false".
Por fim, adicionaremos um onClick
manipulador ao nosso botão para realizar diferentes operações com base no valor de valid
:
<button className="submit" onClick={()=>{handleSubmit()}}>Log in</button>
E na handleSubmit()
função:
const handleSubmit = ()=>{
if(valid){
alert("welcome user " + value + " " + value2)
}
else{
alert("please verify you are not a robot")
}
}
Se executarmos nosso aplicativo agora, obteremos o seguinte resultado:
Se o usuário falhar no reCAPTCHA, ele simplesmente solicitará que o usuário tente novamente até que o teste seja bem-sucedido.
Este tutorial nos ensinou sobre o reCAPTCHA e como podemos integrar esse recurso de segurança em um aplicativo Next.
Fonte: https://blog.openreplay.com/prevent-spam-and-detect-bots-with-recaptcha
1658948400
Recentemente, houve diferentes implementações para evitar spam de diferentes serviços da web. Uma dessas implementações está usando um recurso reCAPTCHA. Um reCAPTCHA é um teste automatizado para determinar se o usuário de um aplicativo da Web é um humano ou um bot. Dessa forma, privilégios ou acessos são concedidos apenas a usuários humanos, reduzindo assim o uso indesejado.
Neste tutorial, os leitores aprenderão o que são reCAPTCHAs e como implementá-los em uma aplicação web.
Um reCAPTCHA é um CAPTCHA(Teste de Turing Público Completamente Automatizado para Separar Computadores e Humanos) que é gratuito, fácil de adicionar e um recurso avançado de segurança do site de propriedade do Google. Ele foi desenvolvido para gerenciar o uso indesejado de sites por bots e evitar spam, implementando várias técnicas para identificar se um usuário de página da Web é um humano ou um bot. Essas técnicas envolvem apresentar ao usuário um teste que é fácil para humanos resolverem, mas difícil para bots ou software malicioso verificar. A implementação desse recurso de segurança em uma página da Web evita o abuso do site enquanto ainda permite que usuários humanos usem o site como deveriam, ou seja, usuários legítimos podem realizar suas atividades normais de acesso e utilização do site após passar no teste reCAPTCHA. O GIF abaixo contém exemplos de tipos de reCAPTCHA que você pode ter encontrado em uma página da web:
A implementação do recurso de segurança reCAPTCHA em um site fornecerá os seguintes benefícios:
No geral, os reCAPTCHAs são seguros, pois não possuem padrões previsíveis no teste selecionado apresentado ao usuário.
Ao longo do tempo, houve desenvolvimentos nas versões do reCAPTCHA, com cada nova versão adicionando uma nova técnica de teste do usuário. Até agora, o Google lançou três versões do reCAPTCHA; v1, v2 e v3.
Para esta versão, o reCAPTCHA monitora o comportamento do site do usuário. Caso o usuário utilize o site de forma suspeita, é apresentada a imagem reCAPTCHA; caso contrário, eles são apresentados com a variante checkbox.
Para demonstrar o recurso reCAPTCHA, teremos um formulário que utiliza um CAPTCHA para permitir que apenas usuários legítimos enviem dados. Para seguir este tutorial, clone o código do formulário inicial do repositório GitHub e execute npm install
no diretório do projeto para instalar todas as dependências necessárias.
Precisaremos de duas coisas: a primeira, uma chave de API para acessar o reCAPTCHA e a segunda, a react-google-recaptcha
dependência. Para obter sua chave de acesso, navegue em seu navegador até aqui :
Nesta página, somos obrigados a inserir o título de nossa chave no Label
campo. Para o tipo reCAPTCHA, usaremos a variante v2 “Não sou um robô”. No campo Domínio, digitaremos “localhost” e, por fim, clicaremos no botão “Enviar” para gerar a chave. Copie as chaves geradas, pois as usaremos em nossa aplicação. Em seguida, instale a react-google-recaptcha
dependência com o seguinte comando na CLI:
npm install --save react-google-recaptcha
Após a conclusão da instalação, podemos importar e usar este pacote em Index.js
:
import ReCAPTCHA from "react-google-recaptcha";
Em seguida, adicione o ReCAPTCHA
componente no formulário logo abaixo do botão de login:
//....
<input
type="text"
placeholder="Doe"
value={value}
onChange={(e) => {
setValue(e.target.value);
}}
/>
</span>
<button className="submit">Log in</button>
<ReCAPTCHA sitekey="your app site key"/>
O ReCAPTCHA
componente requer uma sitekey
propriedade para poder fazer uso dele. Agora, se executarmos a aplicação com o npm run dev
comando, obteremos um resultado semelhante ao da imagem:
O ReCAPTCHA
componente nos permite personalizar o comportamento e a aparência do ReCAPTCHA usando diferentes propriedades. Algumas dessas propriedades incluem:
light
ou dark
. Por padrão, o reCAPTCHA é exibido usando um tema claro, mas adicionar uma theme
propriedade com um valor de dark
renderizará um reCAPTCHA de aparência escura.compact
, normal
ou invisible
. Ele especifica o tamanho do reCAPTCHA ou determina se o reCAPTCHA seria invencível.O OpenReplay é um conjunto de reprodução de sessão de código aberto que permite ver o que os usuários fazem em seu aplicativo da Web, ajudando você a solucionar problemas mais rapidamente. O OpenReplay é auto-hospedado para controle total sobre seus dados.
Comece a aproveitar sua experiência de depuração - comece a usar o OpenReplay gratuitamente .
Para o formulário, queremos que o usuário possa enviar apenas quando tiver concluído o reCAPTCHA. Sempre que um usuário conclui um reCAPTCHA, um token é gerado. Este token é válido por dois minutos e só pode ser usado uma vez. Acessamos esse token em nosso aplicativo para permitir que o usuário envie o formulário após concluir o reCAPTCHA. Para capturar este token, usaremos o hook useRef do React:
//first we add an import for useRef
import { React, useState, useRef } from "react";
Após isso, criaremos uma variável onde armazenaremos o valor do token, usando useRef
:
const getCaptchaRef = useRef(null);
Em seguida, adicione esta variável à ref
propriedade do reCAPTCHA
componente:
<ReCAPTCHA
sitekey= "your site key here"
ref={getCaptchaRef}
/>
A ref
propriedade retorna diferentes funções auxiliares. Algumas dessas funções e seus propósitos correspondentes incluem:
excecuteAsync()
: Esta função envia uma solicitação que retorna o token ou um erro (se ocorrer). No entanto, essa função é aplicável apenas a reCAPTCHAs invisíveis. Para reCAPTCHA visível, a getValue()
função é usada para retornar o token.getValue()
: como o nome indica, esta função retorna o valor do campo reCAPTCHA.reset()
: Isso é usado para redefinir o reCAPTCHA e é aplicável no caso de verificações subsequentes reCAPTCHA
.Podemos usar o ref
para obter nosso token, conforme mostrado abaixo:
<ReCAPTCHA
sitekey= "your site key"
theme="dark"
ref={getCaptchaRef}
onChange={() => {
reCaptchaValue();
}}
/>
Aqui, adicionamos uma função na propriedade do nosso componente onChange
. Usaremos esta função para definir o valor do nosso token:
const reCaptchaValue = async () => {
const token = getCaptchaRef.current.getValue();
};
Em seguida, devemos verificar o token gerado antes de habilitar o recurso de envio. Para fazer isso, precisamos fazer uma POST
solicitação para https://www.google.com/recaptcha/api/siteverify
usar o Node.js no back-end. Crie um novo arquivo, Server.js
, no diretório raiz do seu aplicativo. Para o servidor, precisaremos de duas dependências; Axios
para lidar com nossa POST
solicitação e Express
gerenciar as rotas do servidor. Podemos instalar essas dependências com os seguintes comandos da CLI:
npm i express axios cors
Em seguida, crie um arquivo Server.js
no diretório raiz da pasta do projeto. Em Server.js
, digite o seguinte código:
const express = require("express");
const axios = require("axios");
const cors = require("cors");
const router = express.Router();
const app = express();
const port = 5000;
app.use(cors());
app.use(express.json());
app.use(express.urlencoded({ extended: true }));
app.use("/", router);
router.post("/status", async (req, res) => {
const { token } = req.body; // get token from the request we will create in index.js
const secret = "SITE SECRET";
await axios.post(
`https://www.google.com/recaptcha/api/siteverify`, // URL
{
secret: secret,
response: token,
}, // URL parameters
);
//return response based on the status of the post request
if (res.status(200)) {
res.send(true);
} else {
res.send(false);
}
});
app.listen(port, () => {
console.log(`server is listening on ${port}`);
});
No código acima, criamos um servidor que roda na porta 5000 e escuta route /status
. Usando este servidor, faremos uma solicitação de postagem para determinar se o token é válido e retornaremos uma resposta. Se o token for válido, o servidor retornará uma resposta adequada. Caso contrário, ele retornaria uma resposta false
. Abra o terminal e inicie o servidor com node Server.js
.
Com isso em vigor, iniciaremos nossa solicitação index.js
em nossa reCaptchaValue
função, conforme mostrado abaixo:
const [valid, setValid] = useState(false)
const reCaptchaValue = async () => {
const token = getCaptchaRef.current.getValue();
console.log(token);
await axios
.post("http://localhost:5000/status", {
response: token,
})
.then((res) => {
console.log(res);
setValid(res.data)
})
.catch((err) => {
console.log(err);
});
};
No código, fizemos uma solicitação de postagem para a URL do nosso servidor com o token retornado pelo reCAPTCHA. Em seguida, definimos o valor de um estado valid
igual ao res.data
retornado do servidor, "true" ou "false".
Por fim, adicionaremos um onClick
manipulador ao nosso botão para realizar diferentes operações com base no valor de valid
:
<button className="submit" onClick={()=>{handleSubmit()}}>Log in</button>
E na handleSubmit()
função:
const handleSubmit = ()=>{
if(valid){
alert("welcome user " + value + " " + value2)
}
else{
alert("please verify you are not a robot")
}
}
Se executarmos nosso aplicativo agora, obteremos o seguinte resultado:
Se o usuário falhar no reCAPTCHA, ele simplesmente solicitará que o usuário tente novamente até que o teste seja bem-sucedido.
Este tutorial nos ensinou sobre o reCAPTCHA e como podemos integrar esse recurso de segurança em um aplicativo Next.
Fonte: https://blog.openreplay.com/prevent-spam-and-detect-bots-with-recaptcha
1624410000
Create a Twitter bot with Python that tweets images or status updates at a set interval. The Python script also scrapes the web for data.
📺 The video in this post was made by freeCodeCamp.org
The origin of the article: https://www.youtube.com/watch?v=8u-zJVVVhT4&list=PLWKjhJtqVAbnqBxcdjVGgT3uVR10bzTEB&index=14
🔥 If you’re a beginner. I believe the article below will be useful to you ☞ What You Should Know Before Investing in Cryptocurrency - For Beginner
⭐ ⭐ ⭐The project is of interest to the community. Join to Get free ‘GEEK coin’ (GEEKCASH coin)!
☞ **-----CLICK HERE-----**⭐ ⭐ ⭐
Thanks for visiting and watching! Please don’t forget to leave a like, comment and share!
#python #a twitter bot #a twitter bot with python #bot #bot with python #create a twitter bot with python
1618254581
geeksquad.com/chat-with-an-agent
walmart.capitalone.com/activate
#netflix.com/activate #roku.com/link #amazon.com/mytv #primevideo.com/mytv #samsung.com/printersetup
1611609121
Pay Medical Bills your bills @https://sites.google.com/view/www-quickpayportal-com/
It is really very easy to pay your bills at [priviabillpay.com](https://sites.google.com/view/www-quickpayportal-com/ "priviabillpay.com"). First of all, patients will have to go to the official Privia Medical Community Online portal . Patients can use the quick pay code of priviabillpay.com to make a one-time payment. On the first page of your statement, the QuickPay code is found. Using Priviabillpay to follow a few steps to get paid.
First of all, you must visit the official portal at [www.priviabillpay.com](https://sites.google.com/view/www-quickpayportal-com/ "www.priviabillpay.com")
In the box, fill out the QuickPay Code and tap Make a Payment.
You will be redirected to a page showing all your current rates.
Now select the fees you want to pay and click the check box that you want to accept quickly.
Finally, click on the payment option button.
Your payment details will be asked on the screen.
Fill out the field required and submit your payment.
Our Official Website : https://sites.google.com/view/www-quickpayportal-com/
#www.priviabillpay.com #www-quickpayportal-com #quickpayportal.com #www.quickpayportal.com. #quickpayportal.com.
1602569524
E-scooters are becoming more and more familiar. The compactness, coupled with the skill of evading jam-packed traffics, makes the fast-paced world lean towards this micro-mobility innovation. Besides, with COVID-19 propelling the need for safety and privacy, you do not have drivers in an E-scooters ecosystem! With the system being entirely automated, people can smart-lock and unlock E-scooters without any hassle.
Various top manufacturers are spending quality hours exhaustively on their R&D to shift from fuel-led automobiles to electric power-generating vehicles. Although people hesitate to make investments when it comes to buying an e-vehicle, using such vehicles for commuting is no big deal. If you’re an entrepreneur aiming to launch an Uber for E-Scooters app, now is the time to roll up your sleeves as E-scooters are being legalized in numerous countries, including New York.
Now, let’s discuss the remunerative advantages of E-scooters and why entrepreneurs needn’t hesitate to initiate their E-scooter App development.
Lucrative Benefits of E-Scooters
Outplay traffic effortlessly: One of the main concerns of people worldwide is not reaching the destination on time due to prolonged traffic. With four-wheelers becoming more predominant, the situation is steeping towards the worsening phase. With its compact nature, E-scooters can help people sail past traffic without a sweat. This way, people conserve and utilize their time efficiently.
The environmental impact: As simple as it may sound, automobiles pollute the environment on a massive scale. It is high-time people raise their concerns against environmental degradation. E-scooters are the best alternatives from the environmental perspective. These scooters run on a 500W electric motor, eliminating any form of pollution.
Inexpensive in every aspect: The maintenance and fuel costs of automobiles is way too high as vehicles get older. However, with an E-scooter, all it takes is a rechargeable battery with less or no maintenance at all. Moreover, entrepreneurs get to enhance their profits seamlessly, even after providing economical rides to passengers. There’s only an initial investment cost that an entrepreneur needs to take care of.
The 5-Step Workflow of an E-Scooters App
While building a smartphone application, it is essential to focus on the platform’s workflow. An E-scooter app with a user-friendly architecture and immersive workflow can create an instant impact among the audience. Let’s discuss the simple yet intuitive 5-step workflow here,
Users register with the platform and locate E-scooters nearby by enabling their location preferences.
Users choose their best-suited E-scooters based on numerous metrics like pricing, battery capacity, ratings, etc.
Users unlock the vehicle by scanning the QR code. They initiate their trip and drive towards their destination.
Upon reaching the destination, users park the E-scooters securely and smart-lock the vehicle.
The app displays the total fare with a detailed breakdown. Users pay the amount via a multitude of payment gateways and share their experience in the form of ratings & reviews.
Features that make the E-Scooter app stand apart
Apps like Lime, Bird, etc., have already set a benchmark when it comes to the E-Scooter app market. You need USPs to lure customer attention. Some of the unique elements worth-considering include,
QR scanning - To initiate and terminate rides.
In-app wallet - To pay for rides effortlessly.
Multi-lingual support - To access the app in the customers’ preferred language.
Schedule bookings - To book rides well-in-advance.
In-app chat/call - To establish a connection between the support team and users.
VoIP-based Call masking - To mask users’ contact details.
Geofencing - To map virtual boundaries and keep an eye on E-scooters.
Capitalize on the growing market
Establishing your E-Scooters Rental app at the spur of the moment is highly essential if you wish to scale your business in the shortest possible time. Some of the reasons to initiate your app development right away include,
The unexplored market: The E-Scooter market is still in its nascent stages. Rolling out an app with the right feature-set and approach can help you yield unrestricted revenue.
Competitors are experiencing massive growth: Apps like Lime, Bird, etc., witness unprecedented growth in the past few years. Lime was valued at $2.4 billion in 2019. On the other hand, Bird has spread across 100 cities in Europe. With competitors reaping profits, it is high-time entrepreneurs needn’t hesitate to invest in this business opportunity.
The ‘E’ shift among customers: People are gradually moving towards e-vehicles as a measure to conserve time and environment. By rolling out an on-demand app for E-scooters that is economical, people will inevitably turn towards your platform for the daily commute.
Conclusion
In this modern world, saving time and energy is the need of the hour. Add to that the indispensable role of conserving the environment. E-scooters cater to all these aspects comprehensively. Make the most out of the situation and have no second thoughts about initiating your E-Scooter app development.
#uber for e-scooters #e-scooter app development #e-scooter app #e-scooter rental app #uber like app for e-scooters #uber for e-scooters app