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.
- โจ Multilingual support (English, Hindi, Bengali)
- ๐ Rich text formatting for FAQs
- ๐ Automatic translation
- ๐พ MongoDB database
- ๐ RESTful API endpoints
- ๐ฆ Redis caching
- ๐ User authentication
- Node.js & Express.js
- MongoDB (Database)
- Redis (Caching)
- Google Translate API
- JWT (Authentication)
- Clone the repository
bash git clone https://github.com/Rajaramsingh/BharatFD-Backend-project.git cd BharatFD-Backend-project
- Install dependencies
bash npm install
- Create environment file
Create a
.env
file: env PORT=9999
MONGO_URI=mongodb://localhost:27017/bharat_faqs
- Start the server
bash npm start
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." }
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
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
- Clone the repository
bash git clone https://github.com/Rajaramsingh/BharatFD-Backend-project.git cd BharatFD-Backend-project
- Install dependencies
bash npm install
- Environment Setup
Create a
.env
file:
env PORT=9999
MONGO_URI=mongodb://127.0.0.1:27017/bharat_faqs
- Start the server
bash npm start
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 เฆฐเฆพเฆจเฆเฆพเฆเฆฎเฅค"
}
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
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
}
-
FAQ Model
- Multilingual support
- Automatic translation
- MongoDB integration
-
API Endpoints
- Create FAQ with translations
- Get FAQs in different languages
- Language selection via query parameter
-
Translation Service
- English to Hindi translation
- English to Bengali translation
- Error handling for translations
- Fork the repository
- Create your feature branch (
git checkout -b feature/AmazingFeature
) - Commit your changes (
git commit -m 'Add some AmazingFeature'
) - Push to the branch (
git push origin feature/AmazingFeature
) - Open a Pull Request
Rajaram Singh - GitHub