Skip to content
/ Agora Public
forked from InternLay-HG/100B

Centralized platform for IIIT Ranchi where students can chat with each other, share notes, create surveys and confess anonymously.

License

Notifications You must be signed in to change notification settings

iaadi4/Agora

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 

Repository files navigation

Unified Student Collaboration and Anonymous Confession Platform

This platform streamlines academic resource sharing, real-time communication, and anonymous messaging within a college network, providing both students and educators with collaborative and confidential features.


Table of Contents


Registration

  • Authentication:
    • Email Signup: Uses JWT for authentication; tokens are stored in HTTP-only cookies (access and refresh tokens).
    • Google Signup: Uses Firebase for OAuth with Google.
  • Email Verification:
    • College Email Requirement: Users can only sign up using verified college emails (currently IIIT Ranchi).
    • Two Roles: Teacher and Student.
  • User Information:
    • Required fields: email, password, college (IIIT Ranchi), batch, year, branch, and optional profile picture.
    • OTP Verification: OTP sent to email; account creation is finalized upon OTP verification.
  • Profile Picture: Uploaded to Amazon S3.

Login

  • Authentication: Users can log in using email/password or OAuth.
  • Forgot Password: Reset via OTP sent to registered email.
  • Database: Prisma and PostgreSQL with queries managed using Axios.

Notes

  • Storage: Notes are stored on Amazon S3 (using multer for uploads).
  • Organization:
    • Files can be uploaded directly or within folders.
    • Folders require subject, year, batch, and branch information.
    • Folders can be updated to add new files or remove existing ones.
  • Filtering: Notes can be filtered by subject, year, batch, and branch.
  • Moderation:
    • Upvote/downvote functionality.
    • Can be reported as spam or inappropriate (ML-based moderation).

Chat

  • User Directory: All registered users from the same college are accessible in the directory.
  • Real-time Chat: Enabled using Socket.io with Redis for caching and Kafka for notifications.
  • Encryption: End-to-end encryption for secure communication.

Anonymous Messages

  • Message Features:
    • Anonymous users within the same college can send and read messages.
    • Emoji reactions supported.
    • Messages can be reported for review (ML-based moderation).
  • Editing and Deletion: Messages can be edited or deleted within a specified timeframe.
  • Real-time Updates: Socket.io for real-time messaging and Redis for caching.

Announcements

  • Roles: Accessible to teachers for batch/year/branch-specific announcements.
  • Scheduling: Announcements can be scheduled or sent immediately.
  • Real-time Notifications: Powered by RabbitMQ for queueing and Socket.io for real-time updates.

Polls and Surveys

  • Creation: Both students and teachers can create surveys/polls.
  • Voting Options: Voting can be anonymous.
  • Decentralization: Optional Web3 support for decentralized polls.
  • Time-Limited Access: Polls and surveys can have specified time frames which can be extended and closed.
  • Historical Records: View past polls/surveys.

Tech Stack

Frontend

  • React
  • Tailwind CSS
  • Shadcn UI
  • Typescript
  • Axios
  • Figma

Backend

  • Node.js
  • Express
  • Firebase
  • PostgreSQL
  • Prisma
  • Socket.io
  • WebRTC
  • Redis
  • Kafka
  • RabbitMQ
  • AWS S3

DevOps (Tentative)

  • AWS EC2
  • Prometheus (monitoring)
  • Grafana (visualization)
  • Aiven.io (managed PostgreSQL)

Team Members

  • Aditya Singh - Full Stack
  • Suraj Sharma - Frontend
  • Nilkamal Priyadarshi - UI/UX
  • Kumar Abhishek Ranjan - ML/DL

About

Centralized platform for IIIT Ranchi where students can chat with each other, share notes, create surveys and confess anonymously.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • TypeScript 97.1%
  • JavaScript 1.4%
  • CSS 1.2%
  • HTML 0.3%