Skip to content

Latest commit

 

History

History
181 lines (133 loc) · 4.25 KB

File metadata and controls

181 lines (133 loc) · 4.25 KB

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