CircleConnect is a versatile web application designed to empower users to effortlessly create and manage circles or groups, facilitating project sharing, collaboration, and transparency. Mainly developed as part of a backend engineering course I am currently taking, this platform is tailored to course participants looking to showcase their projects and collaborate with peers.
- ExpressJS: A robust and popular Node.js web application framework for building the backend.
- ReactJS: A powerful JavaScript library for creating dynamic and interactive user interfaces.
- Chakra UI and Tailwind: UI libraries to enhance the visual appeal and user experience of the application.
- Cloudinary: A cloud-based image and video management platform for storing and serving multimedia content.
- PostgreSQL: A reliable and scalable open-source relational database for data storage.
- OAuth: A secure and standardized protocol for user authentication and authorization.
- Circle's and their project's being categorized into sets. Eg (2020 Set, 2021 Set)
- Have circle's be categorized into semesters. Since there are three semesters per sets.
- Users can create accounts and log in using OAuth for a secure and seamless registration process.
- Users can create circles(groups), serving as a space for collaboration and project sharing.
- Each circle has a designated leader and co-leader who can manage circle membership and content.
- Users can request to join a circle.
- Circle leaders have the authority to approve or reject membership requests.
- Circle members can showcase their projects within the circle.
- Projects can be categorized and presented in an organized manner.
- Circle leaders can choose to make specific projects publicly accessible, allowing non-registered users or users not in the circle to view them.
- Public projects are displayed on a dedicated page for each circle, promoting transparency and collaboration.
- Displays more information about the specified project.
- Review Component where outsiders can leave their reviews and rate the project.
- Ability for circle leader to toggle between allowing user’s to be able to make projects private themselves or require permission from the circle leader.
- Ability to generate circle invite link which they can send to their members.
- A page about the project, why we built it, and our socials.
git clone https://github.com/Benedict-arowo/CircleConnect.git
Create a .env
file in the server folder of the project with the following content. Replace placeholders with your actual values.
PORT=8000
DATABASE_URL="postgresql://admin:root@db:5432/Circle?schema=public"
NODE_ENV="test"
DEFAULT_ERROR_MESSAGE="Something went wrong, please try again later."
FALIURE_REDIRECT="/"
GOOGLE_CLIENT_ID=""
GOOGLE_CLIENT_SECRET=""
SESSION_SECRET="secret"
SESSION_TABLE_NAME="Session"
SIGN_IN_SUCCESSFULL_ROUTE = "http://localhost:5173/auth/success"
LOGOUT_REDIRECT_ROUTE = "http://localhost:5173/"
GITHUB_CLIENT_SECRET=""
GITHUB_CLIENT_ID=""
JWT_SECRET="secret"
docker-compose build --no-cache
docker-compose up
Once the containers are up and running, open a new terminal window and run the Prisma migrate command.
docker exec circleconnect_backend npx prisma migrate dev
Your application should now be accessible. Open your browser and navigate to the specified URL or port.
- Backend:
http://localhost:8000
- Frontend:
http://localhost:5173
-
Project Page
- Create a new project
- Manage project page (A list of user's projects so they can edit, or delete them).
- Ability to be able to add reviews to projects.
- Ability to be able to rate the projects.
- Possibly use github's API to get more info about projects.
-
Circle Page
- Create a new circle