Skip to content

Pantkartik/Secure_Chat_version_2

Repository files navigation

💬 Cypher Chat v2: Secure & Real-time Communication

Cypher Chat v2 is a modern, real-time chat application designed for secure and private communication, built with a robust TypeScript backend and a dynamic JavaScript/HTML/CSS frontend.


Version License Stars Forks


Cypher Chat Application Preview A glimpse of the Cypher Chat user interface.

✨ Features

  • 🔒 End-to-End Encryption (Planned): Secure your conversations with advanced cryptographic techniques to ensure privacy.
  • ⚡ Real-time Messaging: Experience instant message delivery and seamless communication with WebSocket technology.
  • 👤 User Authentication & Profiles: Manage user accounts securely with robust authentication and personalized user profiles.
  • 🖼️ Rich Media Support: Share images, videos, and other files directly within your chats (planned).
  • 🚀 Scalable Architecture: Built with a modular backend and frontend, ready to scale for growing user bases.

⚙️ Installation Guide

Follow these steps to get Cypher Chat v2 up and running on your local machine.

Prerequisites

Ensure you have the following installed:

  • Node.js (LTS version recommended)
  • npm or Yarn package manager
  • Git

Step-by-Step Setup

  1. Clone the Repository:

    Start by cloning the project repository to your local machine:

    git clone https://github.com/Pantkartik/Cypher_Chat_version_2.git
    cd Cypher_Chat_version_2
  2. Install Backend Dependencies:

    Navigate into the Backend directory and install its dependencies:

    cd Backend
    npm install # or yarn install
  3. Configure Backend Environment (Optional):

    If your backend requires specific environment variables (e.g., for database connection, secret keys), create a .env file in the Backend directory based on a provided .env.example (if available).

    cp .env.example .env
    # Open .env and configure your variables
  4. Install Frontend Dependencies:

    Navigate into the Frontend directory and install its dependencies:

    cd ../Frontend # Go back to root, then enter Frontend
    npm install # or yarn install
  5. Start the Backend Server:

    From the Backend directory, start the server:

    cd ../Backend
    npm start # or npm run dev if using a dev script

    The backend server will typically run on http://localhost:3000 (or another port as configured).

  6. Start the Frontend Application:

    From the Frontend directory, launch the frontend:

    cd ../Frontend
    npm start # or npm run dev

    The frontend application will usually be accessible at http://localhost:5173 (or another port).

Your Cypher Chat v2 application should now be running!

🚀 Usage Examples

Once installed, you can access the application through your web browser.

Basic Interaction

  1. Open in Browser: Navigate to http://localhost:5173 (or your configured frontend port) in your web browser.
  2. Register/Login: Create a new account or log in with existing credentials.
  3. Start Chatting: Begin a new conversation or join an existing one to experience real-time messaging.

Example Code Snippet (Frontend Connection)

This is a conceptual example of how the frontend might connect to the backend WebSocket server:5

// Frontend (e.g., in a JavaScript or TypeScript file)
import { io } from 'socket.io-client';

const socket = io('http://localhost:3000'); // Connect to your backend WebSocket server

socket.on('connect', () => {
  console.log('Connected to chat server!');
  // Emit a message
  socket.emit('sendMessage', {
    sender: 'Pantkartik',
    message: 'Hello, Cypher Chat!',
    timestamp: new Date().toISOString()
  });
});

socket.on('receiveMessage', (data) => {
  console.log('New message:', data.message, 'from', data.sender);
  // Update UI with the new message
});

socket.on('disconnect', () => {
  console.log('Disconnected from chat server.');
});

Cypher Chat Usage Screenshot Example of a user interacting with the chat interface.

🗺️ Project Roadmap

Cypher Chat v2 is continuously evolving. Here's a glimpse of what's planned:

Upcoming Features

  • Version 1.1.0:
    • Implement end-to-end encryption for private messages.
    • Add group chat functionality.
    • Introduce rich media sharing (images, videos).
  • Version 1.2.0:
    • Develop push notifications for new messages.
    • Integrate user presence indicators (online/offline).
    • Implement message reactions and replies.

Planned Improvements

  • Enhance UI/UX for a more intuitive and modern feel.
  • Optimize backend performance and scalability.
  • Improve error handling and logging across the application.
  • Expand test coverage for both frontend and backend.

🤝 Contribution Guidelines

We welcome contributions to Cypher Chat v2! To ensure a smooth collaboration process, please follow these guidelines:

Code Style

  • Adhere to the ESLint configuration and Prettier formatting used in the project.
  • Write clear, concise, and well-commented code.
  • Ensure all new features or bug fixes include appropriate unit and integration tests.

Branch Naming Conventions

  • Use descriptive branch names:
    • feature/your-feature-name for new features.
    • bugfix/issue-description for bug fixes.
    • chore/task-description for maintenance tasks (e.g., dependency updates).

Pull Request Process

  1. Fork the repository and create your feature/bugfix branch from main.
  2. Ensure your code passes all existing tests and add new tests for your changes.
  3. Commit your changes with clear, descriptive commit messages.
  4. Submit a pull request to the main branch of this repository.
  5. Provide a detailed description of your changes in the PR, including any relevant issue numbers.

Testing Requirements

  • All new features must be accompanied by unit tests.
  • Bug fixes should include a test that reproduces the bug and then passes with the fix.
  • Run npm test (or yarn test) in both Backend and Frontend directories before submitting a PR.

⚖️ License Information

This project currently has no specified license.

This means that by default, all rights are reserved by the copyright holder, Pantkartik. You may not reproduce, distribute, or create derivative works from this project without explicit permission.

Copyright (c) 2024 Pantkartik. All rights reserved.

For any inquiries regarding licensing or usage, please contact the main contributor.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published