Skip to content

lesleyespire/motylo

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

91 Commits
 
 
 
 
 
 
 
 

Repository files navigation

motylo - the private chat website

What is Motylo? It's a chat website that has hosting requirements at the bare minimum (I designed and tested the site on free hosting before moving to a paid host.) It uses polling instead of websockets, though in order to enable voice chat you'll have to make a Pusher account (free).

You can make a private voice chat room simply by sharing your own code with a friend (https://motylo.xyz/voice.php?code=MAKEYOURSELFACODE)

For more information, visit my odoo website: https://motylo.odoo.com/

VISION BOARD AND COMPLETED FEATURES

General feature collection

  • Mobile device UI
  • Voice chat
  • Typing indicators
  • Avatars
  • User moderation
  • Messages
  • Login/Register/guest accounts
  • Channel Selection
  • Community Selection
  • Friend requests and Friends
  • One-to-one mesages
  • In-site notifications
  • Onesignal push notifications

MOBILE

  • Remove emoji button
  • We don’t need username on every message
  • Lots of pings
  • Fix notif bell in room/message
  • Swipe on a message to reply
  • Remove notif on scroll
  • Remove private.php bar in community.php
  • Scrollable friends column
  • All the private.php changes

Simple Features

  • Notif bell takes you to where you got the notif
  • Hover card bio respects enter
  • Remove role
  • Role badges
  • Newline between local roles and bio in hover card
  • Higher priority roles should show higher up in the hover card
  • big emojis and emoji button broken.
  • Italics, bold, underlined, big text, tiny text, weird fonts
  • Images absolutely huge
  • Keep edit window open permanently
  • Clicking links changes YOUR page, not the inbuilt page
  • Different bubble hue for each user
  • Timeouts - Edit/Reply UI
  • Crop avatars - settings.php
  • Gradient/Shiny Roles
  • Delete role
  • Timeouts fail for non-owner users ({"ok":false,"error":"missing_mode" ?action=moderate)
  • Timeout and ban indicators
  • Block people from private.php who don’t have the right roles.
  • Audit edits
  • Global timeouts glitch
  • We lost the bell sound
  • Report message, reply to message, timeout user, ban user, untimeout user, manage roles
  • Timeouts an hour off
  • Enter in messages

Community Expansion!

Permissions

  • Clusters in room.php
  • Cluster access
  • Cluster administrator powers
  • Cluster rules

Community.php (UNIQUE! Collection of interconnected private rooms.)

  • Basic Framework
  • Complex ids
  • Nodes
  • Channel layout
  • No need for an ‘open button’ just click on the text!
  • Role-based perms
  • User Interface Polish
  • FOR ME, fix sidebar button
  • Full Screen, remove the sidebar!
  • There are now two bars, remove it from the view
  • Clicking links changes YOUR page, not the inbuilt page
  • Remove roles from the top! Admin only can see roles
  • Users can wear multiple roles!
  • The global role (username colour, private.php rendering)
  • You can’t access private.php without perms
  • Channel selection categories
  • Move bell upwards
  • Voice chat channels
  • Individual Channel owners
  • Hidden local roles
  • Hidden channels (Hide when no access)
  • Channels default to category permissions

Community_admin.php (Allow the owners to edit)

  • Basic Framework
  • Community Manager Role (Moderation powers)
  • Administrator permissions
  • Role creation and assignment
  • Bans
  • Timeouts
  • Admin assignment
  • Role updates
  • Detect owner/admin/moderator (no more id, just select one of your servers)
  • Role Hierarchy
  • User Interface polish
  • Role creation colour wheel
  • Working audit log
  • Role hierarchy safeguards
  • Customisable moderation
  • Moderation and Interaction Bots
  • Democratic/Dictatorial - Users can decided whether they want their communities to vote for owner (or decided by staff vote) or be a simple dictator who owns it completely. There can also be multiple owners, but one representative (displayed in room.php on hover.)
  • Functional building blocks - this makes it less of a collection of chat rooms than an actual website.

Framework

  • Channel creation
  • Cluster menu
  • Cluster owner abilities
  • Private clusters
  • Cluster in-room admin
  • Event system.
  • Simple channel framework
  • Simple building blocks
  • Simple server framework
  • Simple bot building blocks
  • Complex…

Miscellaneous

  • Ban/timeout enforcement private.php page
  • Room.php -UPDATE Community reqs
  • First community! The simple general chat room!
  • room.php (DISPLAY NEW COMMUNITIES! Node linking system!)
  • Unique role for every community
  • user.php UPDATE (little dropdown to choose your role from your list of communities. You can only choose one!)
  • Hover to see community details
  • Mafia community! (Our second node!)
  • Private community clusters
  • Fully private communities

Permissions

  • Access server framework
  • Access Channel framework
  • Timeout/Untimeout
  • Assign Permissions
  • Role Assignment
  • Ban permissions
  • Hidden Channel access
  • [ x View-lock Access
  • Unquarantine
  • Edit Category permissions (Who can edit in categories)
  • Send-lock Access
  • Send-lock Ability
  • View-lock Ability
  • Delete permissions
  • View deleted messages
  • View edits
  • View audit-log
  • Unban
  • Untimeout

Later Features

  • Stronger favicons
  • Show friends of friends- not just mutual friends
  • DYNAMIC POLLING (Increases when rapid sending)
  • Sitemap.xml
  • Animations - Nicer buttons
  • Custom loading animations
  • improve index.php

Debug Days

  • dm/friend push notifications broken.
  • room.php bell broke
  • Notification bell is broken literally everywhere
  • Block Button movement
  • Mobile Typing Indicators
  • Align mobile message bubbles
  • Push notifs
  • Image replies

How to install it for yourself

Edit config.php to include your own database details, and if you use voice chat, pusher credentials. Then upload all the files and folders (including empty folders).

Finally, you just need to edit the database to have the necessary structure, you should be able to import the sql file (database.sql). You will need to edit the file (You can turn it into a text file) and change the database name to your own.

If you plan to use push notificiations, once again, just edit config.php with your credentials.

One that's done, you just need a friend!

This project is made possible with chatgpt coding. I'm unfortunately quite terrible at writing my own php at the moment.

About

This is a simple chat website modeled off more popular chat platforms (discord, whatsapp, apple messages). Privacy by default, the php doesn't even collect ip addresses!

Topics

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages