Skip to content

Student Project: "Poios" Student - Tutor Instant Messaging Application | RMIT University Vietnam - COSC2769 Further Web Programming

License

Notifications You must be signed in to change notification settings

kuri-team/poios-app

Repository files navigation

POIOS

logo

Student – Tutor Instant Messaging Application


Project Details

Instruction

  1. Download and unzip “poios-app-main” and “poios-api-backend-main”
  2. Open both folders on VSCode or your chosen IDE at the same time
  3. Type “npm install” in the terminal for both directories
  4. Type “npm run start” for both directories so that they are running at the same time.
  5. Run “localhost:8000” on a browser after both the backend and frontend have started.
  6. Register new account using email and password with proper format to test full functions. If you want to login, use this credential:
  • username: Kuri
  • password: 123456

Links

1. Motivation

Due to the COVID-19 situation, many higher education students struggle with online learning. They may miss or do not understand some important concepts, or easily lose their focus during lecture time. This problem is further exacerbated because of the nature of online lecturing: one lecturer and multiple students. In face-to-face lectures, it is already hard for the lecturer to answer every student’s question, and the online environment makes this even harder. Furthermore, technologies “hick-ups” such as slow connectivity, low quality video stream, inaudible voice stream, etc. also happens frequently due to the sheer volume of people online in a single virtual space at the same time. This means they would need more academic help and support outside of class to gain more knowledge. For some, it can be challenging to find the support they need online, since traditional tutoring has not been adequately prepared for such a transition to online learning.

2. Topic

We came up with an idea to build a real-time online instant messaging service aimed specifically at higher education students to connect with tutors. With this service, the user needs to register as a student or tutor, then set up their profile appropriately, such as declaring their major and the subjects they’re interested in. After logging in, the student user can see the tutor lists and join a chat room of an available tutor. The application provides features including text messaging, voice call, video call, and screen sharing to assist the study session.

3. Technologies

  • Front-end stack: ReactJS, PostCSS
  • Back-end stack: NodeJS, MongoDB Atlas, Socket.io, ExpressJS
  • Hosting: Netlify, AWS

4. Functional Requirements

  • User can register a student account.
  • User can register a tutor account.
  • User can login to their respective account and manage their information:
    • Both the student and the tutor can edit their profile on the "My profile" page.
    • Student user can choose a major and subjects that they’re interested in.
    • Tutor user can choose a major and subjects that they want to mentor.
  • The student and the tutor have the option to communicate using real-time messaging.
  • The student and the tutor have the option to communicate using voice call.
  • The student and the tutor have the option to communicate using video call.
  • The student and the tutor can share the screen during a video call.
  • Search bar and filter for tutor lists

5. Non-functional Requirements

  • All the user-inputs should be validated before submission (Pay attention on XSS bugs and SQL Injection)
  • The front-end will be hosted on Netlify
  • AWS for back-end hosting.
  • MongoDB Atlas for storage.
  • Write a report

More specific details provided on RMIT Canvas (Login with RMIT ID)

Work distribution

We managed to deploy the backend but we did not have enough time to incorporate frontend and backend together. Currently, the website’s frontend is hosted on Netlify but it does not have full functions sinct it could not work with the backend. Full functions can only be tested on localhost. Please consider the situation of our group.

  • Doan Yen Nhi : Developer, Github Administrator
  • Du Duc Manh : Developer, Report writer
  • Nguyen Hoang Linh : Developer, Github Administrator
  • Nguyen Hoang To Nhu : Developer, UI Designer
  • Tuong-Minh “Mike” Vo : Developer, UI Designer, Leader
  • Vu Bui Khanh Linh : Developer, UI Designer

Key people


Submission Instructions

Only 1 of the group members (preferably the group leader) needs to:

  • Students must submit in group if they work in group. Please do not submit multiple copies.
  • Submit a zip file including frontend and backend, db backup data to Canvas
  • There is no demo for this assignment but students must submit a Readme.txt file in which it states all member names and ids, detailed work distribution between team members. Make sure that everyone contributes equally to the whole project and less marks will be given to students who did less work.
  • Students who do not deploy the project on cloud will not get 6 marks for deployment. However, they must make a video to demo the functionality of their system and upload it on youtube. Write the URL of the video on the Readme.txt file. No deployment and no video the work can't be marked.
  • Students must write a short report (max 20 pages) to justify and explain their application with regard to motivation, relevant alternatives and architecture/technology decision, including design considerations for security. Students include their group member names and their contribution in this report.
  • Students include the URL of the deployment system in the Report file.