A mobile application platform for tertiary students to communicate, collaborate and share ideas with each other

Overview

Qreeket (pronounced "cricket")

A mobile application platform for tertiary students to communicate, collaborate and share ideas with each other.

As the world continues to embrace technology, the education sector has also seen a significant transformation in recent years. Gone are the days when students had to rely solely on classroom lectures and printed materials. Nowadays, students have access to a plethora of digital resources that make learning more engaging and interactive. However, there is still room for improvement, particularly in terms of communication and collaboration.

To address this need, I am building a mobile application platform that will enable tertiary students to communicate, collaborate and share ideas with each other. The platform will work like Discord, a popular communication platform among gamers, but tailored to the needs of tertiary students. It will leverage the power of grpc and microservices to provide a seamless user experience.

The platform will be developed using Golang and Rust, two programming languages known for their performance and reliability. These languages are also well-suited for building microservices, which will enable the platform to scale as the user base grows.

One of the key features of the platform is its ability to help department heads disseminate information to the various student groups. This will help ensure that all students are up-to-date with the latest developments in their respective departments. Additionally, students from multiple campuses offering the same course can create a community to have discussions and share ideas. This will enhance collaboration and facilitate knowledge sharing among students.

The platform will also allow students to create channels for polling on topics of interest. This will enable them to gather feedback from their peers and make informed decisions. Students can also invite other students to join groups, creating a vibrant community of like-minded individuals.

In summary, the mobile application platform I am building will revolutionize communication and collaboration among tertiary students. It will provide a seamless user experience and enable students to learn from each other, collaborate on projects, and build a strong sense of community.

Introduction

Qreeket is a communication and collaboration platform designed to meet the needs of students in tertiary institutions. The platform is built using grpc and microservices, written in Golang and Rust, and designed to function like Discord. The platform offers a range of features that will enhance communication, collaboration and information sharing among students.

Functionalities

Group Creation

  • The platform allows students to create groups and invite others to join.
  • The groups can be formed based on shared interests or courses.
  • Students can create channels within the group for specific discussions, such as assignments or projects.
  • Students can customize the group settings and set the visibility to public or private.

Department Information Dissemination

  • Department heads can use the platform to disseminate information to their students.
  • Important announcements can be made using the announcement feature to ensure that all students are aware of important developments in their respective departments.

Polling on Topics of Interest

  • Students can create polls to gather opinions from their peers on topics of interest.
  • Polls can be used to inform decision-making or to get feedback on projects and assignments.

Community Building

  • Students from multiple campuses offering the same course can create a community to have discussions and share ideas.
  • The platform enables students to connect with like-minded individuals, build relationships and collaborate on projects.

Direct Messaging

  • The platform provides direct messaging functionality, enabling students to send messages to other students or groups of students.
  • Students can use this feature to ask questions, share ideas or collaborate on assignments.

Resource Sharing

  • Students can use the platform to share resources with their peers.
  • Resources can include notes, books, videos, and other digital content.
  • Students can upload and download resources within their groups.

Architecture

The platform is built using grpc and microservices, written in Golang and Rust. The platform consists of the following components:

  • Gateway: The gateway is responsible for routing requests to the appropriate microservice. It also handles authentication and authorization.
  • Auth Service: The user service is responsible for managing user accounts and authentication.
  • Group Service: The group service is responsible for managing groups and channels.
  • Poll Service: The poll service is responsible for managing polls.
  • Media Service: The resource service is responsible for managing resources.
  • Announcement Service: The announcement service is responsible for managing announcements.
  • Messaging Service: The messaging service is responsible for managing direct messages between users.
  • Community Service: The community service is responsible for managing communities.
  • Notification Service: The notification service is responsible for sending notifications to users.
  • Search Service: The search service is responsible for searching for users, groups, channels, polls, resources, announcements, and communities.
  • Analytics Service: The analytics service is responsible for collecting and analyzing data about user behavior.
  • Recommendation Service: The recommendation service is responsible for recommending content to users based on their interests and preferences.
  • Payment Service: The payment service is responsible for processing payments for premium features.
  • Billing Service: The billing service is responsible for managing subscriptions and billing information.
  • Email Service: The email service is responsible for sending emails to users.
  • SMS Service: The SMS service is responsible for sending SMS messages to users.
  • Push Notification Service: The push notification service is responsible for sending push notifications to users.
  • Alerting Service: The alerting service is responsible for sending alerts to users when there is an issue with the system. This is handled by Sentry.
  • Tracing Service: The tracing service is responsible for tracing requests as they move through the system

Group Creation

The group creation functionality is a central feature of the Qreeket. With this feature, students can create groups, invite others to join, and collaborate on projects and assignments. Here are some additional details:

Implementation

The group creation functionality is implemented using microservices architecture and grpc. This architecture provides a scalable, high-performance solution for handling a large number of users and groups. The group creation functionality is written in Golang and Rust, two languages known for their performance and reliability. These languages are also well-suited for building microservices.

User Interface

Students can easily create a new group, add a description and invite others to join. The user interface also provides options for customizing the group settings, such as setting the visibility to public or private.

Department Information Dissemination

The department information dissemination functionality is a key feature of the Qreeket. With this feature, department heads can communicate important information to their students in a timely and efficient manner. Here are some additional details:

Implementation

The department information dissemination functionality is implemented using microservices architecture and grpc. The feature is written in Golang and Rust, and uses a publish-subscribe model to notify students of important announcements.

User Interface

Department heads can easily create announcements and share them with their students. The user interface also provides options for customizing the visibility of the announcement, such as setting it to be visible to all students or a specific group of students.

Polling on Topics of Interest

The polling on topics of interest functionality is a key feature of the Qreeket. With this feature, students can create polls and surveys on topics that interest them and get feedback from their peers. Here are some additional details:

Implementation

The polling on topics of interest functionality is implemented using microservices architecture and grpc. The feature is written in Golang and Rust, and uses a real-time messaging model to notify students of new polls and survey responses.

User Interface

The user interface for polling on topics of interest is designed to be simple and intuitive. Students can easily create polls and surveys, and share them with their peers. The user interface also provides options for customizing the visibility of the poll, such as setting it to be visible to all students or a specific group of students.

Community Building

The community building functionality is a core feature of the Qreeket. With this feature, students can create communities and channels to connect with other students and share information. Here are some additional details:

Implementation

The community building functionality is implemented using microservices architecture and grpc. The feature is written in Golang and Rust, and uses a real-time messaging model to notify students of new community and channel activities.

User Interface

The user interface for community building is designed to be user-friendly and flexible. Students can easily create communities and channels, and invite other students to join them. The user interface also provides options for customizing the visibility of the community or channel, such as setting it to be visible to all students or a specific group of students.

Direct Messaging

The direct messaging feature is an essential aspect of the Qreeket. This functionality allows students to send and receive private messages from each other, making it easy for them to communicate one-on-one.

Implementation

The direct messaging feature is implemented using gRPC and microservices architecture. It is written in Golang and Rust, making it highly performant and reliable. The feature also utilizes end-to-end encryption to ensure that the messages exchanged between students are secure and private.

User Interface

The user interface for the direct messaging functionality is designed to be intuitive and straightforward. Students can easily initiate private conversations with their friends or other students and exchange messages in real-time.

Benefits

The direct messaging functionality offers several benefits to students, including:

  • Private Communication: Students can send and receive private messages without worrying about their conversations being visible to others.

  • One-on-One Communication: Students can communicate with each other one-on-one, making it easier to share sensitive information and have personal conversations.

  • Efficient Communication: Direct messaging provides a fast and efficient way for students to communicate, saving time and streamlining the communication process.

Overall, the direct messaging feature is an essential aspect of the Qreeket, allowing students to communicate privately and efficiently with each other.

Resource Sharing

The Resource Sharing feature is designed to allow students to share resources with each other. This includes class notes, study materials, and other educational resources. Here are some additional details:

Implementation

The Resource Sharing feature is implemented using microservices architecture and grpc. The feature is written in Golang and Rust, and uses a real-time messaging model to notify students of new shared resources.

User Interface

Students can easily share resources with their peers and access shared resources that are relevant to their courses. The user interface also provides options for customizing the visibility of shared resources, such as setting them to be visible to all students or a specific group of students.

Features

The Resource Sharing feature offers the following functionality:

  • Uploading and sharing files: Students can upload and share files such as class notes, study materials, and other educational resources.
  • Customizable resource visibility: Students can choose who can see their shared resources, such as making them visible to all students or a specific group of students.
  • Resource search: Students can search for shared resources based on keywords, course codes, or other relevant criteria.
  • Resource rating and commenting: Students can rate and comment on shared resources, providing valuable feedback to their peers and helping to improve the quality of shared resources.

Relevant Resources

  • Publish-subscribe model is a messaging pattern used in software systems to notify multiple recipients of an event or message. TheQreeket uses a publish-subscribe model to notify students of important announcements.
  • Golang is an open-source programming language known for its performance, reliability and ease of use. The Qreeket uses Golang for implementing the department information dissemination functionality.
  • Rust is a systems programming language known for its speed, memory safety and concurrency. The Qreeket uses Rust for implementing the department information dissemination functionality.
  • Microservices Architecture is a design pattern used to develop complex software systems consisting of small, independent services that communicate with each other. The Qreeket uses microservices architecture to provide a scalable solution for handling a large number of users and announcements.
  • PostgreSQL is an open-source relational database management system known for its scalability and reliability. The Qreeket uses PostgreSQL as its database management system.
  • Object-relational mapping (ORM) is a programming technique that allows developers to interact with a database using an object-oriented programming language. Qreeket uses an ORM to simplify the process of working with the database.
  • Microservices Architecture is a design pattern used to develop complex software systems consisting of small, independent services that communicate with each other. The Qreeket uses microservices architecture to provide a scalable solution for handling a large number of users and groups.
  • grpc is a high-performance, open-source framework for building remote procedure call (RPC) applications. The Qreeket uses grpc for its microservices architecture.
  • Real-time messaging model is a messaging pattern used in software systems to enable real-time communication between multiple recipients. TheQreeket uses a real-time messaging model to notify students of new polls and survey responses.
You might also like...
This experiment shows connecting wasm-bindgen generated code to a good-web-game application.

GWG + wasm-bindgen example This experiment shows connecting wasm-bindgen generated code to a good-web-game application. It uses simple_logger crate to

A sample Rust application modeled after Spring PetClinic.

Rust PetClinic Sample Application A sample Rust application modeled after Spring PetClinic. Overview This application uses axum and SeaORM on the serv

A Domain Driven Design example application in Rust.

Rust Domain Driven Design Example rust-ddd Rust Domain-Driven-Design (DDD) Summery This repository is used to present how I find implementing DDD in R

TodoX is a sophisticated Rust-based application designed to facilitate seamless todo management.

Rust Todo List App is a command-line tool written in Rust that allows users to manage their tasks efficiently. Whether you need to add, mark as done, edit, or clear tasks from your todo list, this app provides essential functionalities to streamline your task management process. Additionally, I have integrated sqlite3 using the rusqlite crate. The database stores the data and will persist indefinitely until you manually delete it.

Multi-platform desktop app to download and run Large Language Models(LLM) locally in your computer.
Multi-platform desktop app to download and run Large Language Models(LLM) locally in your computer.

Multi-platform desktop app to download and run Large Language Models(LLM) locally in your computer 🔗 Download | Give it a Star ⭐ | Share it on Twitte

A cloud-native distributed serverless workers platform.

rusty-workers A cloud-native distributed serverless workers platform. Features JavaScript and WebAssembly engine powered by V8 Fetch API Highly scalab

Cross-platform GUI for youtube-dl made with Iced

youtube-dl-gui Cross-platform GUI for youtube-dl made with Iced. Installation Before you install this crate, make sure you have youtube-dl and FFmpeg

`memory_pages` is a small library provinig a cross-platform API to request pages from kernel with certain premisions

memory_pages: High level API for low level memory management While using low-level memory management in a project can provide substantial benefits, it

A Platform-less, Runtime-less Actor Computing Model

CrossBus A Platform-Less, Runtime-Less Actor Computing Model Overview CrossBus is an implementation of Actor Computing Model, with the concept that Ru

Owner
Quabynah Bilson Jr.
Quabynah Bilson Jr.
Extending mincaml with "fun" PL ideas.

wowcaml This is a fork of this Rust implementation of mincaml - a compiler for a call-by-value ML-like language, updated to recent versions of craneli

McCoy R. Becker 4 Jul 14, 2022
TypeRust - simple Rust playground where you can build or run your Rust code and share it with others

Rust playground Welcome to TypeRust! This is a simple Rust playground where you can build or run your Rust code and share it with others. There are a

Kirill Vasiltsov 28 Dec 12, 2022
A set of Zero Knowledge modules, written in Rust and designed to be used in other system programming environments.

Zerokit A set of Zero Knowledge modules, written in Rust and designed to be used in other system programming environments. Initial scope Focus on RLN

vac 44 Dec 27, 2022
Compile-time stuff and other goodies for rustaceans 🦀

?? bagel: Always baked, never fried bagel is a collection of macros and other things that we frequently use at Skytable, primarily to get work done at

Skytable 3 Jul 4, 2022
Rust library for compiling and running other programs.

Exers ?? Exers is a rust library for compiling and running code in different languages and runtimes. Usage example fn main() { // Imports...

olix3001 5 Jun 10, 2023
👌 A smol functional language that targets other languages

ditto A small, pure functional language that targets other languages. Syntax highlighting coming soon Elevator pitch ⏱️ Ditto is a mashup of my favour

ditto 45 Dec 17, 2022
rust channel benchmarks to keep stat of performance of Kanal library in comparison with other competitors.

Rust Channel Benchmarks This is a highly modified fork of the crossbeam-channel benchmarks. to keep track of Kanal library stats in comparison with ot

Khashayar Fereidani 14 Dec 21, 2022
A tray application for Windows that gives you push notifications and instant downloads of new posts, messages and stories posted by models you subscribe to on Onlyfans.

OF-notifier A tray application for Windows that gives you push notifications and instant downloads of new posts, messages and stories posted by models

Gentlemen Mercenary 10 Dec 20, 2022
ARM TrustZone-M example application in Rust, both secure world side and non-secure world side

ARM TrustZone-M example application in Rust, both secure world side and non-secure world side; projects are modified from generated result of cortex-m-quickstart.

null 44 Dec 4, 2022
A relatively simple puzzle generator application written in Rust and used via Javascript

Puzzlip Basic Overview This is a relatively simple puzzle generator application written in Rust and used via Javascript in https://puzzlip.com. If you

Nenad 5 Dec 7, 2022