/Hitch-Backend

Bridging Conversations, Building Communities

Primary LanguageJavaScript

Hitch - Bridging Conversations, Building Communities.

Hitch is a Collaborative Workspace Platform, leveraging the power of Next.js and MongoDB. Featuring robust authentication, versatile workspace structures, and cutting-edge huddle sessions, Hitch redefines collaboration. Efficiently manage channels, subchannels, and permissions for precise control. Elevate teamwork with dedicated sections for notes, discussions, and advanced file sharing, including version control and automated categorization. With a modern tech stack, encompassing Node.js, MongoDB, and Socket.IO, Hitch ensures a high-performance and dynamic collaboration experience. Join us on an unparalleled collaborative journey.

Tech Stack

  • Nodejs (v16.18.0)
  • Nextjs
  • MongoDB
  • WebSockets - SocketIO
  • Antd/Tailwind/MUI
  • NextUI
  • Vercel

🚀 Features

  1. Secure Authentication & Authorization:

    • Robust user authentication and role-based authorization ensure a secure collaboration environment.
  2. Workspace Structure:

    • Effortless creation and management of workspaces, offering multiple channels for organized collaboration.
  3. Channel Management:

    • Precision control over channels, supporting subchannels, locking, and role assignment for effective organization.
  4. Notes and File Sharing:

    • Dedicated sections within channels for notes, discussions, and seamless file uploads and sharing.
  5. Roles and Permissions:

    • Granular control with roles such as admin, member, and guest, defining specific access permissions for efficient management.
  6. Huddle Feature:

    • Real-time audio and video conferencing within channels, enhancing communication and collaboration.
  7. Centralized Filtered File Sharing:

    • Streamlined document management with advanced filters, version control, and automated categorization for efficient file sharing.

Dependencies

You need npm/yarn installed in your local machine in order to run this app.

Installation

  npm install 
  npm start

Folder Structure

|   .env.example
|   .gitignore
|   app.js
|   package-lock.json
|   package.json
|   README.md
|
\---src
    +---config
    |
    +---controllers
    |
    +---enums
    |
    +---middlewares
    |
    +---models
    |
    +---public
    |
    +---routes
    |
    \---utils

How To Setup

  • Make sure your machine is having internet connection.
  • Open shell (which ever your OS support) on your PC.
  • Change drive to the location where you want your project to be copied.
  • Clone it to your local setup by using command git clone <repo link>.
  • Once cloned, Run the following command in the root directory of the project npm install.
  • Make sure you have required enviornment variables saved in the .env file in the root of the project. A file .env.example is attached for reference.
  • After the process is completed, run the command npm start.
  • The backend will be live on localhost:4000.

Reference Links

Claim an issue

Comment on the issue. In case of no activity on the issue even after 2 days, the issue will be reassigned. If you have difficulty approaching the issue, feel free to ask on our discord channel.

Communication

Whether you are working on a new feature or facing a doubt please feel free to ask us on our discord channel. We will be happy to help you out.

Guidlines

Please help us follow the best practice to make it easy for the reviewer as well as the contributor. We want to focus on the code quality more than on managing pull request ethics.

  • People before code: If any of the following rules are violated, the pull-requests must not be rejected. This is to create an easy and joyful onboarding process for new programmers and first-time contributors.

  • Single commit per pull request and name the commit as something meaningful, example: Adding <-your-name-> in students/mentors section.

  • Reference the issue numbers in the commit message if it resolves an open issue. Follow the PR Template Issue: < ISSUE NUMBER >

  • Provide the link to live gh-pages from your forked repository or relevant screenshot for easier review.

  • Pull Request older than 3 days with no response from the contributor shall be marked closed.

  • Do not make PR which is not related to any issues. You can create an issue and solve it once we approve them.

  • Avoid duplicate PRs, if need be comment on the older PR with the PR number of the follow-up (new PR) and close the obsolete PR yourself.

  • Be polite: Be polite to other community members.