Stabilize NestJS Social Chat Backend

via Freelancer ·

Budget / Salary₹1,500–12,500
TypeFreelance project
LocationRemote
Posted1 hour ago
# NestJS Backend Developer Needed for Existing Social & Voice Chat App — Taktak Chat

## Project Overview

We are looking for an experienced backend developer to complete and stabilize the backend of our existing application, **Taktak Chat**, a social networking and voice-chat application with messaging, user levels, rankings, virtual currencies, gifting, and social content.

This is an existing project with an established codebase. We need someone who can audit the current implementation, fix broken APIs and business logic, complete missing functionality, and ensure reliable integration with our Flutter application.

A separate Flutter developer will work on the frontend. You will be responsible for backend logic, database changes, API development, real-time events, and the integrity of transactions and user data.

## Technology Stack

- Node.js and NestJS
- PostgreSQL
- Prisma ORM
- Redis
- Socket.IO
- Existing cloud deployment and media-storage integrations

## Phase 1 Scope of Work

### 1. Level System — Highest Priority

The Level System is the client's first priority.

- Audit the existing level-related implementation.
- Implement or fix user experience/points accumulation.
- Implement level thresholds and progression.
- Persist and retrieve user levels correctly.
- Expose APIs for current level and progress toward the next level.
- Support level-dependent entry title banners and effects.
- Provide the data required to display the level bar in the gift box.
- Prevent duplicate points or rewards caused by repeated requests or events.

The client-approved level rules, thresholds, earning conditions, and rewards must be agreed upon before implementation.

### 2. Chat Options and Paid Calling

- Audit and fix the existing chat-related backend functionality.
- Ensure chatting with friends does not deduct coins, according to the client's requirement.
- Implement or fix paid calling, with paid calls as the only enabled calling mode in the agreed scope.
- Validate call participants, call lifecycle, insufficient balance, disconnects, and failed calls.
- Calculate charges on the server using the approved pricing and billing rules.
- Prevent duplicate deductions and incorrect settlements.

The calling rate, billing granularity, and treatment of interrupted calls must be agreed with the client before implementation.

### 3. Wallet, Coins and Diamonds

- Audit the existing coin system, which is currently reported as disabled.
- Restore or fix coin balance functionality.
- Fix the diamond system and provide accurate transaction records.
- Ensure wallet updates are performed by the backend, not trusted from client input.
- Implement safe, auditable balance changes.
- Handle duplicate requests, failed operations, and concurrent transactions correctly.

### 4. Ranking and Recommended Users

- Fix or implement the ranking system for top performers.
- Provide APIs for ranking data and the agreed ranking criteria.
- Fix friend and following relationships used by the Mine page.
- Provide accurate online/offline status and room availability.
- Exclude offline rooms from the Mine page where required.
- Implement the approved user recommendation rules.

The client has requested that recommendations show female users who chat more frequently. The precise eligibility and ranking rules must be confirmed with the client before implementation.

### 5. Moments and Photo Moderation

- Implement or fix backend approval of Moment photos before they become publicly visible.
- Maintain appropriate pending, approved, and rejected states.
- Ensure unapproved or rejected photos are not returned in public feeds.
- Support gifting on eligible, approved Moment photos.
- Implement automatic deletion or expiry of Moment photos after 30 days.

For the 30-day requirement, confirm whether expiry means hiding the photo, deleting its database record, removing its Cloudflare R2 object, or a combination of these.

### 6. Spectators and Real-Time Functionality

- Audit spectator functionality and fix associated APIs/events.
- Fix inaccurate live online-member counts.
- Ensure presence and room membership are updated correctly after users disconnect or reconnect.
- Review Socket.IO event handling and Redis dependencies where applicable.
- Provide the frontend developer with clear API specifications and event payloads.

### 7. Audio Room Backend Support

First confirm the current Audio Room implementation and its existing RTC/signalling architecture.

Where these features belong to the existing backend, implement or fix:

- Level-dependent entry information and effects data.
- Accurate live-member counts.
- Agreed visibility rules for welcome messages and music.
- Gift events and gifting trajectory data.
- Room-sharing data or links where required.
- Reliable real-time synchronization and error handling.

Do not replace the existing RTC architecture unless the client explicitly approves that work.

### 8. Additional Features

Audit and complete the backend functionality for:

- Honor Wall and ranking-related data.
- Dress Store catalogue and ownership.
- Backpack inventory and item selection/equipping.
- Lucky Gift transaction and event support.

These features should be implemented to the depth agreed for Phase 1, without expanding into unrelated functionality.

## Engineering and Security Requirements

- Follow the existing NestJS and Prisma architecture wherever practical.
- Use database transactions for wallet, gift, paid-call, and inventory operations.
- Validate all requests and enforce authentication and authorization.
- Prevent duplicate transactions and unauthorized balance changes.
- Use proper database migrations for schema changes.
- Add automated tests for critical business logic.
- Implement safe error handling and useful logging.
- Verify Redis and database health in the actual deployment.
- Keep credentials and secrets out of source code.
- Document API endpoints, Socket.IO events, configuration requirements, and deployment steps.

## Expected Deliverables

1. Initial audit of the backend codebase, database schema, APIs, and real-time events.
2. Feature-by-feature report identifying working, broken, partial, and missing functionality.
3. Completed and tested backend functionality for the approved Phase 1 scope.
4. Updated Prisma schema and database migrations where required.
5. API and Socket.IO integration documentation for the Flutter developer.
6. Automated test results and a staging demonstration.
7. Deployment, configuration, and handover documentation.
8. A list of remaining known issues and recommendations.

## Required Skills

- Strong Node.js and NestJS experience.
- PostgreSQL and Prisma ORM expertise.
- REST API design and debugging.
- Redis and Socket.IO experience.
- Transaction management and data consistency.
- Authentication, authorization, and API security.
- Experience with real-time applications, messaging, virtual wallets, or social platforms.

Experience with paid calling, virtual currencies, user progression systems, gifting, and social applications is a strong advantage.

## How to Apply

Please include:

- Examples of NestJS projects you have built or maintained.
- Experience with wallet systems, transaction processing, or real-time applications.
- Your approach to auditing an existing backend.
- Your estimated timeline and fixed-price quotation.
- Your proposed milestones and testing strategy.
- Your experience collaborating with a separate frontend developer.

**Important:** This is not a greenfield backend project. We expect the developer to inspect the existing implementation first and fix or extend it wherever possible rather than rewrite working functionality.

We prefer milestone-based payments tied to verified working features, tested code, and documented deliverables. Final scope and pricing will be agreed after the initial audit.
node.js postgresql redis backend development rest api
Apply on Freelancer →

Project sourced from Freelancer.com. Applications happen directly on the original platform — we never collect your data.