This project implements a Community Management System allowing users to perform various actions related to authentication, community viewing, creation, and moderation.
- Signup: Users can create an account using a valid name, email, and a strong password.
- Signin: Users can log in using valid credentials.
- View Communities: Users can access and view all available communities.
- Create Community: Users can create new communities.
- View Community Members: Users can view the list of members within a community.
- Add Community Member: Users with admin privileges can add new members to a community.
- Remove Community Member: Users with admin privileges can remove members from a community.
This document provides details about the API routes available in this project.
- Route:
POST /v1/auth/signup
- Description: Create a new user account.
- Required Body Parameters:
name
,email
,password
- Route:
POST /v1/auth/signin
- Description: Authenticate and sign in a user.
- Required Body Parameters:
email
,password
- Route:
GET /v1/auth/me
- Description: Retrieve details of the authenticated user.
- Authentication Required: Yes
- Route:
POST /v1/community
- Description: Create a new community.
- Required Body Parameters:
name
- Authentication Required: Yes
- Route:
GET /v1/community
- Description: Retrieve all communities.
- Route:
GET /v1/community/:id/members
- Description: Retrieve members of a specific community by ID.
- Route:
GET /v1/community/me/owner
- Description: Retrieve communities owned by the authenticated user.
- Authentication Required: Yes
- Route:
GET /v1/community/me/member
- Description: Retrieve communities joined by the authenticated user.
- Authentication Required: Yes
- Route:
POST /v1/role
- Description: Create a new role.
- Required Body Parameters:
name
- Route:
GET /v1/role
- Description: Retrieve all roles.
- Route:
POST /v1/member
- Description: Add a member to a community.
- Authentication Required: Yes
- Route:
DELETE /v1/member/:id
- Description: Remove a member from a community by ID.
- Authentication Required: Yes
- Clone the repository:
git clone <repository-url>
- Install dependencies:
npm install
- Run the application:
npm start
Ensure to handle user authentication using a valid token obtained after login to access restricted endpoints.