Sonic Live Site here!
Feature List | Database Scheme | API/Routes |
Sonic is a fast and dynamic communication platform inspired by Discord. It allows users to create servers and group channels to hang out with friends and explore various hobbies and areas of interest. Built using React, Websockets, and Flask, Sonic offers a real-time chatting experience that ensures seamless communication and efficient interactions.
-
Clone this repository: https://github.com/igamus/sonic.git
-
Install denpendencies into the Backed and the Frontend by making a terminal for each one and then run the following:
- backend (In base of directory):
Pipenv install
- frontend :
npm install
- backend (In base of directory):
-
Create a .env file using the .envexample provided
-
Set up your database with information from your .env and then run the following to create your database, migrate, and seed (base directory):
Pipenv shell
flask db init
flask db migrate
flask db upgrade
flask seed all
-
Start the app for both backend and frontend using:
- backend :
pipenv run flask run
- frontend :
npm start
- backend :
- For setting up your AWS refer to this guide
-
Server Creation: Users can create their own servers and invite friends to join, fostering a sense of community within specific interest groups.
-
Group Channels: Within each server, users can create and participate in different group channels, making it easy to chat and share content with like-minded individuals.
-
Real-time Communication: Sonic leverages Websockets to enable real-time messaging, ensuring instant delivery of messages and a smoother user experience.
-
User Authentication: Secure user authentication allows individuals to create accounts, log in, and access their servers with confidence.
-
Sleek and Intuitive UI: The user interface is designed to be user-friendly and visually appealing, enhancing the overall user experience.
-
User Profile Pictures: Users can personalize their profiles with profile pictures, adding a personal touch to their presence on Sonic.
-
Server and Banner Images: Servers can have custom server images and banners, allowing users to customize the look and feel of their communities.
- React: A popular JavaScript library for building user interfaces.
- Websockets: A communication protocol that enables real-time, full-duplex communication between the client and server.
- Flask: A lightweight and efficient web framework for Python.
-
User Registration/Login: Create an account or log in to an existing account to access the full functionality of Sonic.
-
Server Creation: Once logged in, you can create your own server and invite friends to join by sharing the server link/code.
-
Group Channels: Within each server, you can create multiple group channels for different discussions or topics.
-
Real-time Chat: Enjoy real-time communication with friends and community members in the group channels.
-
Personalization: Customize your user profile with a profile picture and your servers with unique server images and banners.
-
Exploring Interests: Discover and join servers related to various hobbies and areas of interest to connect with like-minded individuals.
- Brian Freese - @brianfreese
- Isaac Gamus - @isaacgamus
- Oscar Alcantar - @oscaralcantar