Skip to content

The online platform "theFence" gives the possibility to communicate with other people in thematic chat rooms with real-time messages.

Botiuk/theFence

Repository files navigation

theFence

The online platform "theFence" gives the possibility to communicate with other people in thematic chat rooms with real-time messages.

Built with: Rails 8.0.2.1, Ruby 3.4.1, postgres, bun, Tailwind, devise, cancancan, pagy, ransack.

Test with: RSpec, factory_bot_rails and faker.

Code style checking: RuboCop and his special cops.

My native language is Ukrainian and this is a single language on app. But all interface text was made with I18n and easy to change with translating locale file.

In joke phraseology, fence - a place where anyone can write anything, but this does not mean it is true, and you must believe it. In addition, a low fence is a great place to sit with friends and chat. That's why this platform of online chat rooms was named "theFence".

Each user can create chats. Automatically, his role in those chats is administrator. The other two roles in chat are moderator and user. An administrator can change chat, change the roles of chat users, and delete chat. Deleted chat for 30 days becomes invisible to other users. During this period, the chat admin can cancel deleting, otherwise the chat will be destroyed. A chat administrator and moderator can ban users in chat, delete messages.

Each chat can be public or private, with free access or invitation, and public or anonymous messages. If chat is private, he must have an invitation to access for new subscribers. A chat administrator can update an invite key.

A chat administrator can see a list of users who subscribed to this chat and change their role. Also, he can see a list of users who have been banned in this chat with information on who banned them and what reason. These two lists have search functionality for users' nicknames. If chat is anonymous, in these two lists, users' nicknames are partially hidden with stars and fully hidden in messages. A chat moderator can see a list of banned users.

The user can subscribe to and unsubscribe from chats. In chats, he can write messages and start private chats with other chat users. In the chat page, in real time, it shows messages that were written for the last 7 days. Older messages, chat users can find in the chat archive with search functionality for dates between chat creation to today.

When a user starts a private chat, before sending a message, the second user must agree to this communication. At any moment, each of these two users can stop this communication by banning the other user. Private chat page and old messages are available for them, but users cannot send new messages. Private chat messages also show from the last 7 days and have an archive with search functionality, like chat messages.

The app has two types of users - client and admin. Admin can be created only through db:seed. He can read and ban all public chats without subscription to them. This is the only difference between his functionality and simple users.

About

The online platform "theFence" gives the possibility to communicate with other people in thematic chat rooms with real-time messages.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published