Giter Site home page Giter Site logo

resendo's Introduction

Table of Contents

  1. Introduction
  2. Features
  3. User Interface
  4. Technical Implementation
  5. Conclusion

1. Introduction

  • Resendo is a real-time chat application, just like other chat applications which are Telegram, WhatsApp, Messenger, etc.
  • Resendo is created via my interest about making a real-time application, with the intention of learning about socket, how socket works, how to implement it, etc.

2. Features

Implemented Features
  • Message: Users can send and receive messages sent by other users, as well as anyone in the group. There are two types of chats: peer-to-peer chat and group chat, typing indicator is also implemented for each type.
  • Request: Users can send friend requests to other users, and those other users could either accept or reject the request.
  • Group: Users can create groups without a single member, and they can add and remove members.
  • Profile: Users can customize their own profiles, but this is limited.
  • Authentication: Easy registration and login, only need email to login.
  • Media: User can send media such as images, videos (limit: 10MB).
  • Notification: A real-time notification whenever the users receives a message.
Unfinished Features
  • Group notification: Exactly like Notification but in group.
  • Chat audio: A sound effect is played whenever the notification is appended.
  • Friend request indicator: A notification about friend request whenever users have request.

3. User Interface

Chat Layout

Main-Layout

4. Technical Implementation

  • In order to make this application, what I have used to accomplish it:
    • Vue.js: An open-source front-end JavaScript framework used for building user interfaces and single-page applications.
    • Express.js: A popular open-source web application framework for Node.js.
    • Socket.IO: Esstential module, a real-time, bidirectional, event-driven framework for building scalable network applications in JavaScript.
    • Mongoose: An ODM for connect and to work with MongoDB databases by defining schemas, models and managing relationships between data.
    • Cloudinary: A cloud-based media management solution that provides an end-to-end image and video management service, including upload, storage, administration, manipulation, optimization, and delivery.

5. Conclusion

  • This project has finished after a month (05/03/2023 to 05/04/2023), and there were plenty of things that I experienced:
    • The struggle from the client side: Literally the most thing I've suffered when it comes to front-end is design and making the user interface for the app. It's due to my lack of creativity and incomplete visualization. At first, the client was made in React, but the inefficiency in performance caused me to migrate to Vue, and the migration really took a lot of time to complete. The responsiveness is awful and drives me crazy.
  • What I've learned:
    • Always have a blueprint before diving into making user interfaces.

resendo's People

Contributors

surtr1st avatar

Watchers

 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.