Step into our cutting-edge chat platform, meticulously crafted with the powerful MERN (MongoDB, Express, React, Node.js) stack and integrated with OpenAI's Chat API. Engage in intelligent, natural conversations and experience the future of online communication. Our platform combines advanced technology and AI-driven interactions for a seamless and interactive chatting experience like chatGPT.
-
Cloudinary is used for image management and hosting. Follow these steps to configure Cloudinary for your project.
- Create a Cloudinary account here.
- Create a new Cloudinary project.
- Go to the dashboard and copy the cloud name, API key, and API secret.
- MongoDB is used for storing data. Follow these steps to configure MongoDB for your project.
- Create a MongoDB account here.
- Create a new project and cluster.
- Go to the dashboard and copy the connection string.
- Go to .env file and save DB_LINK.
-
Clone the repository:
git clonehttps://github.com/sheeluofficial/talk-gpt cd talk-gpt
-
Install dependencies:
cd backend npm install cd .. cd client npm install cd ..
-
a
.env
file inside theroot
backend folder and add the following:PORT = 5000 DB_URI ="mongodb+srv://<username>:<password>@<cluster-url>/<database-name>?retryWrites=true&w=majority" JWT_SECRET = <jwt-secret-key> CORS_ORIGIN = http://localhost:5174 OPEN_AI_API_KEY = <openai chat apikey> OPEN_AI_ORGANIZATION = <openai organization id> JWT_SECRET = secret COOKIE_DOMAIN = localhost
-
Run the app:
cd backend npm start cd client npm run dev
Feature | Description |
---|---|
User Authentication | OAuth with JWT for secure user login and registration |
OpenAi Chat |
Feature | Description |
---|---|
Image generation | Image generation through openAI image api |
Email Drafting Assistant | Email Drafting feature using openAI API |
Resume/CV Builder | Build ATS friendly resume by providing user info and JD |
Dependency | Description |
---|---|
@babel/plugin-proposal-class-properties | Babel plugin for class properties |
bcryptjs | Hash passwords before storing |
body-parser | Parse incoming request bodies |
cookie-parser | Parse Cookie header and populate req.cookies |
cors | Enable Cross-Origin Resource Sharing |
dotenv | Load environment variables from a .env file |
express | Web application framework for Node.js |
jsonwebtoken | Generate and verify JSON Web Tokens |
jwt-simple | Simple JWT encoding and decoding |
mongoose | MongoDB object modeling tool |
nodemon | Monitor for changes in source code and restart server |
validator | Validate and sanitize user input |
Dependency | Description |
---|---|
@emotion/react | Emotion library for writing CSS with JavaScript |
@mui/material | Material-UI components library |
axios | Promise-based HTTP client for the browser and Node.js |
react | JavaScript library for building user interfaces |
react-hot-toast | React component for customizable alerts |
react-dom | Entry point to the React DOM library |
react-router-dom | Routing library for React applications |
react-scripts | Create React apps with no build configuration |
styled-components | CSS-in-JS library for styling React components |
react-syntax-highlighter | For highlighting code syntax |
react-type-animation | Showing typing word animation |