BreezeBot is a comprehensive Mental-Health-Care Chatbot designed to provide empathetic and personalized support to users. It offers a safe space for individuals to explore their feelings, receive mental health advice, and find valuable resources. The bot is available 24/7, ensuring that users always have access to help whenever they need it.
- Features
- Technologies Used
- Setup and Installation
- Usage
- API Endpoints
- Project Structure
- Sample Images
- Contributing
- License
- 🔒 User Authentication : Secure registration, login, and password management with JWT-based authentication.
- 💬 Chat Functionality : Real-time chat with the BreezeBot, which offers mental health advice and resources.
- 📝 Chat History : User chat history is saved and can be retrieved at any time.
- 🔑 Password Management : Secure password storage with bcrypt, including password history to prevent reuse.
- 🔐 OTP-based Password Reset : Users can reset their passwords securely using an OTP sent to their email.
- 🤖 AI/ML Integration : The bot utilizes natural language processing (NLP) and machine learning (ML) to understand user inputs and provide relevant responses.
- Node.js : Server-side JavaScript runtime.
- Express.js : Web framework for Node.js.
- MongoDB : NoSQL database for storing user data and chat history.
- Mongoose : Object Data Modeling (ODM) library for MongoDB.
- JWT (JSON Web Tokens) : For secure user authentication.
- bcrypt.js : For hashing passwords and managing password history.
- Winston : For logging server events.
- Flask : Python-based backend for the chatbot AI/ML model.
- Keras : Deep learning framework used for training the chatbot model.
- NLTK : Natural Language Toolkit for processing text inputs.
- React.js : JavaScript library for building user interfaces.
- Bootstrap : CSS framework for responsive design.
- Styled Components : For writing CSS in JS with styled-components.
- React Router : For routing in the React app.
- Node.js and npm installed
- Python and pip installed
- MongoDB installed and running
-
Clone the repository:
git clone https://github.com/sabariraj01/BreezeBot.git cd BreezeBot
-
Install backend dependencies:
cd backend npm install
-
Create a
.env
file in thebackend
directory and add the following:PORT = 5000 MONGO_URI = mongodb://localhost:27017/chatbot JWT_SECRET = your_secret_key NODE_ENV = production EMAIL_USER = [email protected] EMAIL_PASS = your_email_password API_KEY = your_api_key FRONTEND_URL = http://localhost:3000
-
Start the backend server:
npm start
-
Install frontend dependencies:
cd ../frontend npm install
-
Create a
.env
file in thefrontend
directory and add the following:REACT_APP_API_URL = http://localhost:5000 REACT_APP_API_KEY = your_api_key
-
Start the frontend server:
npm start
-
Install Python dependencies:
pip install -r requirements.txt
-
Train the chatbot model (if needed):
python bot_creation.py
-
Start the Flask server:
python app.py
- Open your browser and go to
http://localhost:3000
. - Register or log in to start chatting with BreezeBot.
- Explore the chat history, reset passwords, and more using the provided features.
- POST /api/users/register : Register a new user.
- POST /api/users/login : Log in a user.
- POST /api/users/logout : Log out the current user.
- GET /api/users/profile : Get the profile of the logged-in user.
- PUT /api/users/profile : Update the profile of the logged-in user.
- POST /api/users/forgotpassword : Request a password reset OTP.
- PUT /api/users/resetpassword : Reset the password using the OTP.
- POST /api/chats/save : Save a chat message.
- GET /api/chats : Retrieve chat messages for a specific user.
- Home Page : A screenshot of the home page.
- Chat Interface : A screenshot of the chat interface.
- Login : Screenshots of the login forms.
- Register : Screenshots of the registration forms.
Contributions are welcome! Please follow these steps:
- Fork the repository.
- Create a new branch (
git checkout -b feature/your-feature
). - Commit your changes (
git commit -m 'Add some feature'
). - Push to the branch (
git push origin feature/your-feature
). - Open a pull request.
This project is licensed under the MIT License. See the LICENSE file for details.