A role-based messaging app for academic use.
Messenger features:
- Friends list
- Chat rooms
- Message history
- Offline messaging
- Article repository
- Comment on articles
- Role-based commands
- Anonymity when posting articles and comments
See passwords.txt for existing accounts and their sign in details.
Admin:
- Can chat to anyone (Admin friends list contains every user that signs up).
- Set/Delete roles for any user.
- Mute/Unmute any user.
- Create articles.
- Modify/Delete articles created by any user.
- Comment on articles.
- Delete any comment.
Staff (Teacher, Teaching Assistant, Supervisor):
- Can chat with friends.
- Mute/Unmute Student users.
- Create articles.
- Modify/Delete articles created by themselves or by Student users.
- Comment on articles.
- Delete comments made by themselves or by Student users.
Student:
- Can chat with friends.
- Create articles.
- Modify/Delete their own articles.
- Comment on articles.
- Delete their own comments.
Type "!" in chat box to see role-specific commands.
Admin Commands:
- !role set
- !role delete
- !mute
- !unmute
Staff Commands:
- !mute
- !unmute
Muted users cannot join chat rooms or post/comment on articles.
To setup, install the packages:
pip install -r requirements.txtFinally, add the authority certificate (certs/myCA.pem) as a trusted certificate to your internet browser.
To run the app:
python app.pyNavigate to http://127.0.0.1:5000
Since cookies are shared across browser tabs, multiple different browsers are required to test client communication.
- Python
- Flask
- Flask-SocketIO
- SQLAclhemy
- SQLite
- Jinja
- bcrypt
- HTML
- CSS
- Javascript
- Socket.io
- Axios
- jQuery
- Cookies
![]() |
![]() |
![]() |
![]() |



