Discordia is a Discord clone where users can create and join servers to chat with other members in live time.
Explore the docs »
View Live Site
·
Report Bug
·
Request Feature
Table of Contents
This project was a group collaboration to clone Discord and its core functionality. The initial MVP was due within just over a week's time. Socket.io is implemented to allow chats to happen in live time.
Feature Highlights:
- Users can create a server, edit that server's details and delete the server
- Users can create, edit and delete channels for the servers they own
- Users can send messages within channels for servers they own or are a part of in real time, and can delete their own messages
- Users can view all of their existing servers in the left nav bar
- Users can discover new servers to join, join servers, and leave a server
To get a local copy up and running follow these simple example steps.
-
Clone this repository
-
Install dependencies
pipenv install -r requirements.txt
-
Create a .env file with your environment variables based on this example:
SECRET_KEY=your_secret_key DATABASE_URL=your_db_url SCHEMA=your_schema_name
S3_BUCKET=your_bucket_name S3_KEY=your_key S3_SECRET=your_secret_key
-
Get into your pipenv, migrate your database, seed your database, and run your Flask app
pipenv shell
flask db upgrade
flask seed all
flask run
-
To set up the front end, cd into react-app in another terminal. Then install dependencies and start the app:
npm install
npm start
Users can sign in giving their details.
Registered users can log in with their credentials. Users can also log in with one of two demo users to test functionality without creating an account.
Users can send messages within channels for servers they are a part of. They can also delete messages that they have sent.
Users can create a new server and choose a name for that server. A general channel is always automatically created for new servers.
Users can edit the name for servers they own.
Users can delete a server that they own. They are prompted to enter the name of the server to match so that they do not delete a server by mistake.
Users can create a channel for servers they own, choosing a name and a topic for that channel.
Users can edit the details for channels that they own by clicking the cog next to the channel name.
Users can delete channels for servers they own by clicking Delete Channel from within the Edit Channel modal.
Users can go to the discover servers page from either the left navigation bar or the home page upon login. Here they can see all of the servers they are not yet a part of.
Users can join servers from the discover servers page. They are redirected to the server page once they join.
Users can leave servers that they are currently members of.
- AWS implementation to be able to upload pictures for server and user icons.
- Add reactions for messages.
- Direct messaging between two specific users.
See the open issues for a full list of proposed features (and known issues).
- Claudia Kosylak - claudiakosylak@gmail.com - https://github.com/claudiakosylak/
- Matt McBurnett - mattmcburnett@gmail.com - https://github.com/mattmcburnett
- James Lee - https://github.com/lee963654
- Hanna Rosenfeld - hannazrosenfeld@gmail.com - https://github.com/hannarosenfeld
Project Link: https://github.com/claudiakosylak/group-discord-clone