Skip to content

CelebrAI is a fun educational tool that brings history and literature to life. Chat with AI personas inspired by iconic historical figures, literary characters, and philosophers. With secure accounts, customizable settings, and interactive conversations, CelebrAI offers an engaging way to learn, explore, and be entertained!

Notifications You must be signed in to change notification settings

Mahmoud-K-Ismail/CelebrAI---Chat-with-Historical-Icons

Repository files navigation

CelebrAI

Overview

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!


Features

  • 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.

Technology Stack

  • Frontend: React.js, Bootstrap
  • Backend: Node.js, Express.js
  • Database: MongoDB
  • Authentication: Passport.js
  • API Integration: GPT-based AI response generation

Wireframes

Login Page

Wireframe for Login Page

Chat Interface

Wireframe for Chat Page

Settings Page

Wireframe for Settings Page

Website MAP

Wireframe for Linking pages together


Installation and Setup

Prerequisites

  • Node.js and npm installed.
  • MongoDB installed and running.

Steps

  1. Clone the repository:
    git clone https://github.com/Mahmoud-K-Ismail/CelebrAI---Chat-with-Historical-Icons.git
    cd CelebrAI---Chat-with-Historical-Icons
  2. Install dependencies:
    npm install
  3. 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
    
  1. 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
  2. Access the application at http://localhost:3000.

Usage

  1. Register or Log In:
  • Navigate to the /register or /login page.
  • Securely register or log in to your account.
  1. Chat with Personas:
  • After logging in, start a chat with any persona of your choice.
  • Use the conversation editor to rename or delete chats.
  1. Update Settings:
  • Visit /settings to change your username or password.

Project Showcase

How it Works

  • Login
    Login

  • Register
    Register

  • Chatting with a Persona
    Chatting

  • Changing Username
    Customizing


Database Schemas

User

{
  username: String,
  password: String,
  conversations: [ObjectId] // References to Conversation documents
}

Conversation

{
  user: ObjectId, // Reference to User
  persona: String, // Selected persona for the conversation
  messages: [
    { content: String, isUser: Boolean, timestamp: Date }
  ]
}

Testing

  • Unit tests for backend routes and authentication logic are available in the tests/ directory.
  • Run tests using:
    npm test

Contributing

We welcome contributions! To contribute:

  1. Fork the repository.
  2. Create a feature branch:
    git checkout -b feature/your-feature
  3. Commit and push your changes.
  4. Open a pull request.

License

This project is licensed under the MIT License. However, permission is required to edit or use this code.


Authors

Mahmoud Kassem

About

CelebrAI is a fun educational tool that brings history and literature to life. Chat with AI personas inspired by iconic historical figures, literary characters, and philosophers. With secure accounts, customizable settings, and interactive conversations, CelebrAI offers an engaging way to learn, explore, and be entertained!

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published