/webapp

Primary LanguagePython

Here's a sample README file that covers the learning objectives and provides instructions for setting up the project:


WebAppProject

This project aims to create a web application that facilitates real-time chat functionality. It covers various aspects of web development including backend server setup, handling HTTP requests, user authentication, and database management.

Learning Objectives Achieved:

  1. Backend Development: The project implements a backend server using Python's socketserver module to handle HTTP requests and responses.

  2. User Authentication: User authentication is implemented using username-password authentication with salted hashing. This ensures secure authentication of users.

  3. Database Management: MongoDB is used as the database for storing user data, chat messages, and authentication tokens. The pymongo library is used to interact with the MongoDB database.

  4. Real-time Communication: The web application supports real-time chat functionality where users can send and receive messages instantly without the need to refresh the page.

Installation Instructions:

Prerequisites:

  • Docker installed on your system.

Steps to Install:

  1. Clone the Repository:

    git clone <repository-url>
  2. Navigate to Project Directory:

    cd WebAppProject
  3. Build Docker Containers:

    docker-compose build
  4. Start Docker Containers:

    docker-compose up
  5. Access the Web Application:

    Once the containers are up and running, you can access the web application by navigating to http://localhost:8080 in your web browser.

Project Structure:

  • server.py: Contains the main server logic implemented using Python's socketserver module.
  • util: Directory containing utility modules for request handling, authentication, routing, etc.
  • public: Directory containing static assets such as HTML, CSS, and JavaScript files for the frontend.

Usage:

  • Register/Login: Users can register for a new account or log in using existing credentials.
  • Real-time Chat: Users can send and receive messages in real-time with other logged-in users.
  • Logout: Users can log out of their accounts to end their session securely.

Contributors:

  • [Your Name]
  • [Contributor 1]
  • [Contributor 2]

Feel free to customize this README according to your project specifics and additional features. Make sure to replace [repository-url] with the actual URL of your project repository.