Code Monkey home page Code Monkey logo

node-messenger's Introduction

Привет всем 👋!

Меня зовут Александр, я – разработчик backend.

Мои основные технологии: Python, Django, FastAPI, PostgreSQL.

Люблю Nuxt и TypeScript. Планирую изучить Go!

Мой сайт и личные проекты:

  • 🏡 amgold.ru
  • 🔭 Биржа Услуг: позволяет размещать зарегистрированным пользователям информацию о предоставляемых ими услугах и выступать в качестве исполнителей, или заказывать услуги у других пользователей. Пост о проекте
  • 🏗️ RSS Reader: читайте RSS ленты онлайн. 🚧 В разработке! Пост о проекте.
  • 📚 Моя библиотека: книжный сайт для семейного пользования.
  • 📌 Bookmarks: управляйте закладками на веб-страницы онлайн.

Связаться со мной:


Top Langs

node-messenger's People

Contributors

hazadus avatar

Stargazers

 avatar

Watchers

 avatar  avatar

node-messenger's Issues

Features Roadmap 💬🛣️

Features

  • UI
    • #6
    • #7
    • #18
    • 🛎️ Sound effects
    • Sort conversations list by latest message, desc, when new message arrives
  • Various
    • Refactor Prisma schema to single shared file
  • Chat enhancements
    • #9
    • "Chat owner" actions
      • #11
      • Chat Info modal
      • Add / remove users
      • Set chat title
    • "Leave chat" option
    • System messages (user joined, user leave...)
    • isTyping state for ConversationParticipant
    • User Online state
  • Messages enhancements
    • #14
    • Copy Text from messages context menu
    • Reply to messages (quotedMessage)
    • Edit messages
    • Forward messages
    • Pin messages
    • Upload files
  • CI/CD
    • Add Sentry
    • Add Umami tracking and events
    • Write make backup script
    • Add user in Docker images
    • #3
  • Deploy! 🚀

Delete chat

ToDos

  • Create deleteConversation query on backend
  • Create deleteConversation query on frontend
  • Wire up delete query with menu item

Delete messages

ToDos

  • Context menu for messages
  • Call createUmamiEvent
  • Mutation
    • deleteMessage resolver
    • DeleteMessage operation on frontend
    • useMutation in context menu
  • Subscription
    • messageDeleted resolver
    • MessageDeleted operation on frontend
    • useSubscription on frontend

Improve UI 2

ToDos

  • Sounds
    • Play sounds only for new messages (not for all conversation updates)
  • Chat List
    • Fix width for mobile screens
    • Fix width for large screens
    • Fix width to avoid horizontal scrollbar
    • Tooltips for all usernames
    • Tooltip for full latest message
    • Vertical scrolling
  • Chat context menu
    • Hide items unavailable to user
    • Add "Chat Info" item
  • "Create New Chat" modal:
    • Search as user types
  • Messages:
    • Dates in message area (like Telegram web)
    • Some kind of "no messages yet" banner
    • Use "optimistic render" for sent messages so user avatars don't flicker
    • Show avatar and username in last message only
    • Hide avatar and username if there's only 2 participants in the chat
    • Markdown in messages
  • Optimise for mobile devices
    • Debug scrolling to new messages on iPad

Improve UI

ToDos

  • Overall
    • Change "brand" color to purple
  • Chat list navbar:
    • "Create chat" button
    • WhatsApp-like dropdown menu (Profile, Sounds on/off, About app, Logout)
    • Profile info modal (open from menu or click on avatar)
    • About app modal
  • Chat List
    • Search box below navbar
    • "Filter unread" button
    • Hide user's avatar in list items
  • Messages navbar:
    • Dropdown menu (Chat Info, Delete, Leave)
    • Hide user's avatar in navbar
  • Messages:
    • "No chat selected" – style and center
    • Limit max width of the messages area
    • Auto focus message input

Fix semi-transparent white body background

Hi Alexander,
You're using Chakra and only adding the dark chakra-ui-dark class after the page has loaded, so in each browser you get this flash of white. However, you are not setting any background color for that dark mode, instead relying on a browser adding a dark backdrop for you. Not all of them do, and support for that at all is very recent.
Polypane only does this when you do not have a background set on your own which, unfortunately, you do, because you add a semi-transparent white background to the body at all times: var(--chakra-colors-whiteAlpha-200).
The best solution is to be explicit and add a dark background color to your body for your dark mode.
Hope that helps,

Best,

Kilian

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.