CelebrAI is a fun, interactive, and educational tool that brings the styles of famous historical figures, literary characters, and philosophers to life. Engage in conversations with AI personas inspired by iconic individuals, offering a unique way to explore language, history, and literature.
With CelebrAI, users can:
- Register and log in securely.
- Chat with personas such as William Shakespeare, Albert Einstein, or even Hamlet.
- Customize their settings.
- Review and edit their conversation history.
This application combines entertainment and learning, making it perfect for students, educators, and enthusiasts alike!
- AI-Powered Conversations: Chat with AI personas that mimic historical and literary figures.
- Secure User Authentication: Protect user data with robust login and session management.
- Customizable User Settings: Update usernames, passwords, and other preferences.
- Conversation History: Review and rename chat sessions for a tailored experience.
- Dynamic Persona Selection: Change the persona mid-conversation for more interactive chats.
- Frontend: React.js, Bootstrap
- Backend: Node.js, Express.js
- Database: MongoDB
- Authentication: Passport.js
- API Integration: GPT-based AI response generation
- Node.js and npm installed.
- MongoDB installed and running.
- Clone the repository:
git clone https://github.com/Mahmoud-K-Ismail/CelebrAI---Chat-with-Historical-Icons.git cd CelebrAI---Chat-with-Historical-Icons
- Install dependencies:
npm install
- Set up the environment:
- Create a
.env
file in the root directory. - Add the following:
PORT=3000 SESSION_SECRET=your_secret MONGO_URI=mongodb://localhost:27017/celebrai GEMINI_API_KEY= your_GEMINI_API_key
- Start the application:
- go to frontend directory and run:
npm run build
- go back to the root directory and run backend with the static files:
node app.mjs
- Access the application at
http://localhost:3000
.
- Register or Log In:
- Navigate to the
/register
or/login
page. - Securely register or log in to your account.
- Chat with Personas:
- After logging in, start a chat with any persona of your choice.
- Use the conversation editor to rename or delete chats.
- Update Settings:
- Visit
/settings
to change your username or password.
{
username: String,
password: String,
conversations: [ObjectId] // References to Conversation documents
}
{
user: ObjectId, // Reference to User
persona: String, // Selected persona for the conversation
messages: [
{ content: String, isUser: Boolean, timestamp: Date }
]
}
- Unit tests for backend routes and authentication logic are available in the
tests/
directory. - Run tests using:
npm test
We welcome contributions! To contribute:
- Fork the repository.
- Create a feature branch:
git checkout -b feature/your-feature
- Commit and push your changes.
- Open a pull request.
This project is licensed under the MIT License. However, permission is required to edit or use this code.
Mahmoud Kassem