Python server backend for a search application with API support

Job ID: 32711557

Budget: ₹12,500 – ₹37,500 INR

We need a server backend built for our search application. The web frontend will be taken up as a separate project. The project requirements are fairly simple, but must be able to scale when the number of users increase (the expected load is less than 10K users).

The requirements briefly are given below, if you need more info please reach out to us

The server language must be Python. The database can be the developer's call based on the requirements. It can be MySql/Mariadb, Postgres, or MongoDB (we already use this for a part of the backend)

Security of the application is of great importance and must be taken care of while building the application.

The application is a search application, wherein the user enters a search term and the service searches for it in an already available database and returns the result to the user.



Reqs:

1. A user registration and login with captcha, forgot password, change password, session management functionality.

2. A system where the user can purchase tokens and use for the searches. Stripe or Paypal integration (TBD) is needed here. The tokens must have a configurable expiry time.

3. A search endpoint where the user can submit his search term. This must be exposed both in API and on the website when logged in. The search result on our backend is not available immediately and takes some time to finish, so the search request must be registered as a job which the user can poll to check when the results are available.

4. Every search request should deduct the user's tokens by a configurable amount in the order of expiry and reject the request if sufficient tokens are not available for that request.

5. The user needs to poll the server for results of the search performed.

Only the search (both register a search and request search results) endpoint must be accessible by both API and through the website. The remaining functionality can be restricted only to the website.

These are the main requirements. There maybe a few more which are mostly implied by the above reqs.
Related categories: Python MySQL MariaDB MongoDB API Development