PROXY/VPN project Android
Project Description
The project consists of an SDK + an application that operates based on this SDK, which acts as a proxy/VPN server, and a backconnect server to which the application will connect. Through it, access to the application for internet access with its IP address using multiple protocols (HTTP/HTTPS Proxy, Socks5 Proxy (TCP/UDP), SSH Tunnel, ShadowSocks, Wire Guard VPN) will be possible. Essentially, it will serve as a layer for connecting to the application.
The project consists of the following main entities:
1) SDK
2) Application
3) Application Server
4) Main Server
5) Backconnect Server (Proxy Server)
6) Admin Panel
Description of the main entities
SDK - is a Kotlin library for Android applications with its universal
API that developers, including ourselves, will be able to integrate into their applications to set up the proxy. For example, a developer integrates it into their application during initialization by specifying a unique client ID and application ID (also described in the main server section), and depending on the settings in the database of our control server, various functionalities will be available. During the initialization of this SDK, the application ID and other parameters stored in the main server for identifying prohibited proxies on the main server must be passed in the parameters. The protocols that the SDK must support with the proxy server are HTTP/HTTPS Proxy, Socks5 Proxy (TCP/UDP), SSH Tunnel, ShadowSocks, Wire Guard VPN.
The following points need to be addressed when working with the SDK:
- the application should not connect to the proxy server if a VPN is running on the phone; there should be a clean exit through mobile or WiFi.
The application - it should work based on the SDK and the application server to enable direct earnings for the user. They will be able to create an account and start earning on their device, which will run in the background, and when connecting to their proxy, they will earn money for it. The application must
interact with the application server described below, and it should be supported on all devices, including Android TV. All points described below in the application server subsection must also apply to this application.
The application must be written in Kotlin.
The application should initially support the following interface languages:
- Russian
- English
- French
- German
- Spanish
Additionally, any extra language should be added without much difficulty by adding a translation file and rebuilding the application.
Authorization requests in the application will be implemented using a pair of tokens:
● Access token: standard JWT token - it must be passed in every request where authorization is required in the header in the following format - Authorization: Bearer {JWT}
● Refresh token: a random string that must be passed in the corresponding API method.
The application server - this server will directly interact with the application, responsible for registration, authorization, payments, as well as delivering content such as FAQs, support, payments, news, and notifications.
The following API methods must be implemented for the application:
- registration using email, which must be confirmed for
future login, as well as using captcha (not Google, for example
Cloudflare)
- login to the account
- password recovery using captcha (not Google, for example
Cloudflare)
- main screen, enabling/disabling proxy, disabling optimization,
setting IP address change (as an option through a voice assistant)
- news or placing news on the main screen
- personal account
- FAQ
- support
- transaction history
- withdrawal page
- push notifications that can be sent by the administrator through
the personal account
For the admin panel, the following methods must be implemented:
- list of users with all main information
- working with FAQs (creating, viewing, deleting, and editing)
- working with tickets (viewing, correspondence, closing tickets, viewing all tickets of a specific user)
- working with withdrawals (viewing, confirming or rejecting, viewing all withdrawals of a specific user)
- viewing connections (one user can have multiple phones, and this essentially connects all applications to the servers) and their status (viewing all connections or a specific user)
- viewing connection history and their status (viewing all connections or a specific user)
The application server - will work with the application and together with the control server. It will implement all the logic described above and also serve as an intermediary point for communication with the control server. Essentially, this server will have a user database, earnings history, withdrawals, API methods for retrieving various information for the admin panel. All other connection data will be obtained by the application through the SDK from the main server.
The main server - is the brain of the system, which will interact with the SDK, proxy servers, and clients (who will purchase proxies and administrators).
From the SDK side, when requesting to connect to the proxy server, it must find the most optimal proxy server using the GEO data of the application and the location of the proxy server to connect to the optimal proxy server. Necessary methods must be implemented for the SDK for proper interaction.
The following API methods must be implemented for the control server:
1) for proxy buyers:
a) obtaining a list of proxies
b) connecting to proxies
c) disconnecting from proxies
d) obtaining the status of proxies (mandatory parameters are described below)
i) current IP
ii) connection status
iii) traffic used since connection
e) changing IP address
2) for the admin panel:
a) obtaining a list of all devices online (with pagination, total number of proxies, client ID, application ID, IP address, GEO parameters) (role - admin)
b) obtaining a list of all connection histories (role - admin)
c) obtaining a list of proxies for a specific client (role - client)
d) obtaining a list of connection histories with the amount of
traffic used by a specific client’s proxy (role - client)
e) obtaining statistics on connections and used
traffic for a specific client (role - client)
f) method for registering a new user in the system, specifying email, password, role (role - admin)
Continuation attached in the file.
Tasks can be changed and delegated (admin web panel)
Applications 1
-
10 days2194 USD
4097 5 1 10 days2194 USDHello
I carefully read your requirements and reviewed the document.
Thank you for your details that allowed me to understand all your requirements.
As a senior Android developer with 7 years of experience, I am absolutely confident that I can perfectly complete your project and deliver it on time.
I would like to discuss this with you.
Thank you.
Current freelance projects in the category App Development for Android
It is necessary to create an Android application for affiliate in the i-gaming sector for the Play Market.
16 USD
We need to create an Android application for affiliate in the i-gaming sector for the Play Market. A sample application will be provided privately. The completed work must closely match the provided sample. Anyone with experience in similar projects, please respond. Criteria… App Development for Android ∙ 3 days 10 hours back ∙ 20 proposals |
Restore the correspondence in Telegram, price negotiable.
16 USD
a person deleted in two chats in Telegram please help to restore everything, we will agree on the price!!!!!! App Development for Android ∙ 3 days 14 hours back ∙ 3 proposals |
I will commission the improvement of my application's integration with Tpay.
137 USD
I am looking for someone to integrate the Tpay payment gateway with my custom application. The goal is to correctly implement it so that the subscription renews automatically through recurring BLIK payments. The integration is largely done by me, but I got stuck at one point… Hybrid Mobile Apps, App Development for Android ∙ 5 days 2 hours back ∙ 13 proposals |
2D Puzzle GameLooking for a Unity developer to create a mobile game in the puzzle/casual genre. About the game: 2D vertical format mobile devices Android/iOS style closer to casual/mobile puzzle Main mechanics: The player interacts with game elements, rotates them, and collects the correct… App Development for Android, Apps for iOS (iPhone and iPad) ∙ 8 days 4 hours back ∙ 15 proposals |
Android Kotlin Foreground Service для отримання glucose-даних із Juggluco ч/з xDrip Broadcast Emulat
17 USD
Розробити Android-додаток на Kotlin, який: отримує glucose readings із Juggluco через режим емуляції xDrip broadcasts, працює як persistent Foreground Service, приймає realtime glucose broadcasts через Android BroadcastReceiver, виконує локальне збереження даних, виконує… App Development for Android ∙ 10 days 11 hours back ∙ 11 proposals |