Modulo is an online chat forum that gives teachers and students a standard platform to have meaningful conversations. It helps the students to engage with their peers virtually.
> Microsoft Engage-21 Project Submission
> App Name: modulo
> Created by: Kritika Srivastava
> Email: kritika.s1408@gmail.com
- React.js
- Firebase
- Redux
- HTML
- CSS
- Semantic-Ui (frontend templates)
Users can easily register for the application and login using their credentials.
Every user is authorised to create their own channel. The messages and files in the channels are accessible to all the users(including messages sent before registration).
modulo enables the users to have one-on-one private communication.
In order to search messages in a channel or in private messages, all you have to do is enter the keyword present in the message.
Users can add the favourite channels to the starred list for easy accessibility.
Users need not worry about the messages after logging out. There will be notifications once you login again in the website.
- Clone this repository.
- Create a firebase project.
- Replace the configuration codes in src/server/firebase.js.
- Enable storage and realtime database in firebase console.
- Install the packages using
npm install
command. - Run the app locally using
npm start
command.
modulo
├── firebase.json
├── package.json
├── package-lock.json
├── public
│ ├── 4846450.png
│ ├── favicon.ico
│ ├── index.html
│ ├── manifest.json
│ └── robots.txt
├── README.md
└── src
├── actions
│ ├── actioncreator.js
│ ├── actiontypes.js
│ └── reducer.js
├── App.css
├── App.js
├── App.test.js
├── components
│ ├── AppLoader
│ │ ├── AppLoader.css
│ │ └── AppLoader.jsx
│ ├── auth
│ │ ├── auth.css
│ │ ├── Login
│ │ │ └── Login.jsx
│ │ └── Register
│ │ └── Register.jsx
│ ├── Messages
│ │ ├── FileUpload
│ │ │ └── FileUpload.jsx
│ │ ├── MessageContent
│ │ │ └── MessageContent.jsx
│ │ ├── MessageHeader
│ │ │ └── MessageHeader.jsx
│ │ ├── MessageInput
│ │ │ └── MessageInput.jsx
│ │ ├── messages.css
│ │ └── Messages.jsx
│ └── sidebar
│ ├── channels
│ │ ├── channels.css
│ │ └── channels.jsx
│ ├── favouriteChannels
│ │ └── FavouriteChannels.jsx
│ ├── Notification
│ │ └── Notification.jsx
│ ├── PrivateChat
│ │ └── PrivateChat.jsx
│ ├── sidebar.css
│ ├── Sidebar.jsx
│ └── UserInfo
│ ├── UserInfo.css
│ └── UserInfo.jsx
├── index.js
├── logo.svg
├── reportWebVitals.js
├── server
│ └── firebase.js
└── setupTests.js
- Private channels with invited members
- Submission channels
- Banning users for some time in channels
- Email authentication with OAuth