GithubHelp home page GithubHelp logo

backenddevelopmentapplications's Introduction

Task: Build a Real-Time Chat Application

In this assignment, your task is to create a real-time chat application using Node.js, Express.js, TypeScript, and Socket.io. This chat application will enable users to communicate with each other by sending text messages and sharing images in real-time within a chat room.

Requirements:

  1. Backend Setup with Node.js, Express.js, TypeScript, and Socket.io:

    • Set up a Node.js server using Express.js to handle HTTP requests and Socket.io to enable real-time WebSocket communication.
  2. User Authentication:

    • Implement user authentication to allow users to join the chat room with a unique username. Users should not be able to use the same username simultaneously.
  3. Chat Room Creation:

    • Create a chat room where users can join and exchange messages. Multiple chat rooms may be supported, and users should be able to choose a room to join.
  4. Real-Time Text Messaging:

    • Implement real-time text messaging functionality within the chat room. Messages sent by one user should be immediately visible to all other users in the same chat room.
  5. Image Sharing:

    • Enable users to upload and share images within the chat. Images should be uploaded to the server, temporarily stored, and then shared as part of the chat conversation.
  6. Error Handling:

    • Implement error handling mechanisms to gracefully handle scenarios such as user disconnections, failed image uploads, or other potential issues that may arise during real-time communication.
  7. Documentation:

    • Create Postman collection or Swagger documentation for your WebSocket API endpoints. The documentation should provide comprehensive information about the WebSocket events, data structures, and message formats used for communication.

Submission Details:

To submit your assignment, follow these steps:

  1. Fork Repository:

    • Fork the provided GitHub repository to create your own copy.
  2. Create Branch:

    • Create a new branch in your forked repository with your name (e.g., "yourname_assignment").
  3. Commit Regularly:

    • Commit your code regularly to the branch so that your progress can be tracked.
  4. Pull Request:

    • Once you have completed the assignment, create a pull request from your branch to the main repository. Replace "main repository" with the URL of the original repository.
  5. README.md:

    • Include a README.md file in your project repository. This README should explain your approach to building the chat application, any challenges you faced, and any additional features or improvements you would have added if given more time.
  6. Documentation Link:

    • Include the link to your Postman collection or Swagger documentation in the README.md file.

Evaluation Criteria:

Your assignment will be evaluated based on the following factors:

  • Technical Proficiency:

    • Demonstrating your skills in using Node.js, Express.js, TypeScript, and Socket.io to build a functional real-time chat application with image sharing.
  • Code Quality:

    • Writing clean, well-structured, and maintainable code with proper comments and strict typing.
  • WebSocket Implementation:

    • Creating WebSocket endpoints and handling real-time communication effectively.
  • User Authentication:

    • Implementing a secure user authentication system.
  • Image Upload:

    • Allowing users to upload and share images in the chat room.
  • Error Handling:

    • Implementing error handling mechanisms for a robust chat application.
  • Documentation:

    • Providing detailed Postman collection or Swagger documentation for the WebSocket API endpoints.

Submission Deadline:

You have 3-4 days from the date you received this assignment to complete and submit it.

Good luck with the assignment! If you have any questions during the development process, feel free to reach out for clarification. Happy coding!

backenddevelopmentapplications's People

Contributors

zigyprints avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.