Skip to content

Rajaramsingh/BharatFD-Backend-project

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 Cannot retrieve latest commit at this time.

History

14 Commits
 
 
 
 

Repository files navigation

BharatFD Backend Project

A multilingual FAQ management system built with Node.js, Express, and MongoDB. Supports automatic translation to many language ( like Hindi and Bengali) with rich text formatting.

Features

  • โœจ Multilingual support (English, Hindi, Bengali)
  • ๐Ÿ“ Rich text formatting for FAQs
  • ๐Ÿš€ Automatic translation
  • ๐Ÿ’พ MongoDB database
  • ๐Ÿ”„ RESTful API endpoints
  • ๐Ÿ“ฆ Redis caching
  • ๐Ÿ” User authentication

Tech Stack

  • Node.js & Express.js
  • MongoDB (Database)
  • Redis (Caching)
  • Google Translate API
  • JWT (Authentication)

Installation

  1. Clone the repository

bash git clone https://github.com/Rajaramsingh/BharatFD-Backend-project.git cd BharatFD-Backend-project

  1. Install dependencies

bash npm install

  1. Create environment file Create a .env file: env PORT=9999

MONGO_URI=mongodb://localhost:27017/bharat_faqs

  1. Start the server

bash npm start

API Documentation

Create FAQ

http POST /api/faqs Request Body { "question": "What is Node.js?", "answer": "Node.js is a JavaScript runtime built on Chrome's V8 JavaScript engine." }

Get FAQs

http Get FAQs in English GET /api/faqs?lang=en

Get FAQs in Hindi GET /api/faqs?lang=hi

Get FAQs in Bengali GET /api/faqs?lang=bn

Project Structure

BharatFD-Backend-project/ โ”œโ”€โ”€ Bharat-FAQs/ โ”‚ โ”œโ”€โ”€ models/ โ”‚ โ”‚ โ””โ”€โ”€ faq.js โ”‚ โ”œโ”€โ”€ routes/ โ”‚ โ”‚ โ”œโ”€โ”€ faqRoutes.js โ”‚ โ”‚ โ”œโ”€โ”€ userRoutes.js โ”‚ โ”‚ โ””โ”€โ”€ authRoutes.js โ”‚ โ”œโ”€โ”€ services/ โ”‚ โ”‚ โ”œโ”€โ”€ translationService.js โ”‚ โ”‚ โ””โ”€โ”€ cacheService.js โ”‚ โ”œโ”€โ”€ middleware/ โ”‚ โ”‚ โ””โ”€โ”€ auth.js โ”‚ โ”œโ”€โ”€ config/ โ”‚ โ”‚ โ”œโ”€โ”€ db.js โ”‚ โ”‚ โ””โ”€โ”€ redis.js โ”‚ โ”œโ”€โ”€ controllers/ โ”‚ โ”‚ โ”œโ”€โ”€ faqController.js โ”‚ โ”‚ โ”œโ”€โ”€ userController.js โ”‚ โ”‚ โ””โ”€โ”€ authController.js โ”‚ โ”œโ”€โ”€ utils/ โ”‚ โ”‚ โ””โ”€โ”€ errorHandler.js โ”‚ โ””โ”€โ”€ server.js โ”œโ”€โ”€ node_modules/ โ”œโ”€โ”€ .env โ”œโ”€โ”€ .gitignore โ”œโ”€โ”€ package.json โ”œโ”€โ”€ package-lock.json โ””โ”€โ”€ README.md

Installation

  1. Clone the repository

bash git clone https://github.com/Rajaramsingh/BharatFD-Backend-project.git cd BharatFD-Backend-project

  1. Install dependencies

bash npm install

  1. Environment Setup Create a .env file:

env PORT=9999

MONGO_URI=mongodb://127.0.0.1:27017/bharat_faqs

  1. Start the server

bash npm start

API Documentation

Create FAQ (POST)

http

POST http://localhost:9999/api/faqs

Request Body

{

"question": "What is Node.js?", "answer": "Node.js is a JavaScript runtime built on Chrome's V8 JavaScript engine."

}

Response

{

"id": "...", "question": "What is Node.js?", "answer": "Node.js is a JavaScript runtime built on Chrome's V8 JavaScript engine.", "answer_hi": "Node.js Chrome เค•เฅ‡ V8 JavaScript เค‡เค‚เคœเคจ เคชเคฐ เคฌเคจเคพ JavaScript เคฐเคจเคŸเคพเค‡เคฎ เคนเฅˆเฅค", "answer_bn": "Node.js เฆนเฆฒ Chrome เฆเฆฐ V8 JavaScript เฆ‡เฆžเงเฆœเฆฟเฆจเง‡ เฆจเฆฟเฆฐเงเฆฎเฆฟเฆค เฆเฆ•เฆŸเฆฟ JavaScript เฆฐเฆพเฆจเฆŸเฆพเฆ‡เฆฎเฅค"

}

Get FAQs (GET)

http Get FAQs in English GET http://localhost:9999/api/faqs?lang=en

Get FAQs in Hindi GET http://localhost:9999/api/faqs?lang=hi

Get FAQs in Bengali GET http://localhost:9999/api/faqs?lang=bn

Dependencies

json

{

"cors": "^2.8.5", "dotenv": "^16.3.1", "express": "^4.18.2", "mongoose": "^8.0.3", "translate-google": "^1.5.0", "redis": "^4.6.7", // Add Redis "bcryptjs": "^2.4.3", // Add bcryptjs "jsonwebtoken": "^9.0.0" // Add JWT

}

Features Implemented

  1. FAQ Model

    • Multilingual support
    • Automatic translation
    • MongoDB integration
  2. API Endpoints

    • Create FAQ with translations
    • Get FAQs in different languages
    • Language selection via query parameter
  3. Translation Service

    • English to Hindi translation
    • English to Bengali translation
    • Error handling for translations

Contributing

  1. Fork the repository
  2. Create your feature branch (git checkout -b feature/AmazingFeature)
  3. Commit your changes (git commit -m 'Add some AmazingFeature')
  4. Push to the branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

Author

Rajaram Singh - GitHub