Orantio is a mobile messaging platform, designed to enhance your communication experience through seamless connectivity and powerful features. Whether you're chatting one-on-one or collaborating in large groups, our platform provides an intuitive and secure space for all your conversations. With real-time online presence and support for multiple devices, you'll never miss a moment—stay connected effortlessly across all your favorite devices.
This is the final group project from two courses in VNUHCM - University of Science - CS426 - Mobile Device Application Development and CS300 - Introduction to Software Engineering.
All reports related to course CS426 and CS300 can be found here:
- Group Messaging
- Server Channel Conversations is the primary feature of our application, Orantio. A user can add, edit, or delete messages in a channel and reply to messages. Additionally, users can express their reactions using emojis, and upload images, videos, and other attachments with other users.
- Online Presence
- A user can know whenever other users are online. He/she can also share his/her status with other users by setting his/her custom status.
- Multiple Device Support
- The same account can be logged in to multiple accounts at the same time.
- Server Management
- The server owner can decide what other members in a server can do through the use of server roles & permissions. It is used when we want to categorize a set of users with predefined permissions (server role with admin permissions, or just basic permissions for a user to interact with components in the server freely).
- The server owner can also restrict a user from a server by kicking a user out of a server or banning that user.
- User Management
- Enable user registration, login, and authentication to ensure secure access to the application.
- A user can upload his/her avatar, edit his/her status, and befriend other users.
- Premium Subscription
- Integrate modern payment methods that allow users to buy premium subscriptions to have access to premium privileges.
- A free user and a paid user will have different user interfaces with different features and support.
The application is currently available on both Android and iOS, you can download it from: Releases.
- Note: Push notifications are only available on Android devices.
Here is the video demo of the project on YouTube: CS426 - Orantio Demonstration (outdated).
The project contains four repositories:
- Mobile Frontend: This repository contains all the source code for the Mobile Application that supports both Android and iOS, written in React Native.
- Mobile Backend: This repository contains all the source code for the backend system that handles all the requests from client (Mobile Application).
- Notification Service: This repository contains all the source code for the notification service that sends push notifications to users.
- Monitoring Service: This repository contains all the source code for the deployment of monitoring service that monitors the server's performance and logs.
This project is licensed under the GNU General Public License v3.0 - see the LICENSE file for details.
- Amazon Lightsail (Backend and Notification Service)
- Docker
- NGiNX
- Amazon Route53 (DNS Service)
- Google Kubernetes Engine (Monitoring Service)
- Amazon S3
- Amazon CloudFront (Content Delivery Network - CDN)
Ensure you have NodeJS installed on your machine. If not, you can download it from NodeJS.
- Clone the repository:
git clone https://github.com/mobile-apcs-ntploc21/mobile-backend.git- Install PNPM globally:
npm install -g pnpm- Install the dependencies:
pnpm install-
Go to folders
apiandapolloyou need to make a file calledconfig.envfrom the provided templateconfig.env.templateand fill in the necessary information. -
Start the server:
pnpm startIf you want to run the server in development mode, you can use the following command:
pnpm devEnsure you have Docker installed on your machine. If not, you can download it from Docker.
- Clone the repository:
git clone https://github.com/mobile-apcs-ntploc21/mobile-backend.git-
Go to folders api and apollo you need to make a file called config.env from the provided template config.env.template and fill in the necessary information.
-
Build the Docker image:
docker-compose build- Start the Docker container:
docker-compose upNote: You need to run the notification-service following the Docker installation guide to enable the notification feature before running the mobile-backend.
The project could not have been completed without these developers!
- 22125050 - Nguyễn Thanh Phước Lộc
- 22125068 - Trương Chí Nhân
- 22125076 - Nguyễn Hoàng Phúc
- 22125115 - Ngô Hoàng Tuấn
- 22125121 - Đinh Hoàng Việt
