A simple issue tracking system that enables users to manage projects.
- Users can sign up
- User can sign in
- User can log out
- User can view his/her profile
- User can a create Project
- User can view a single project he/she created
- User can update the details of his/her project
- User can view all his/her projects
- User can view all project where he/she is a team member
- User can add new registered users as a team member to a specific project
- User can remove a team member from his/her project
- User can delete his/her project
To get a copy of this project up and running on your local machine for testing and development, you would need to have a minimum of the underlisted prerequisities installed on your local machine.
You must have
-
Node.js (v8.12.0 or higher) and npm (6.4.1 or higher) installed on your local machine. Run
node -v
andnpm -v
in your terminal to confirm that you have them installed -
GIT bash
To get started, clone this repository on your local machine using the following steps:
Open your terminal and navigate to the folder you want the project to be and enter the the following commands:
$ git clone -b develop https://github.com/daylay92/entrack-backend.git
$ cd entrack-backend
$ npm install
Create a .env
file and add the environment variables described in the .env.sample file. Below are the relevant environment variables worth adding:
SECRET
- JWT secret for signing access token.
npm run start:dev
npm test
The application can be tested locally through localhost on port 3000 or through the live url using postman or insomnia
Method | Endpoint | Enable a user to: |
---|---|---|
POST | api/v1/auth/signup | Create a user account |
POST | api/v1/auth/signin | Login a user |
GET | api/v1/auth/logout | Logout a user |
GET | api/v1/user | Fetch user information |
POST | api/v1/project | Create a project |
GET | api/v1/project | Fetch a collection of users created project |
GET | api/v1/project/<:projectId> | Get a specific user's project by its id |
GET | api/v1/user/team/projects | Get a collection of projects for which user is a team member |
PUT | api/v1/project/<:projectId> | Update a project's title and description |
PATCH | api/v1/project/<:projectId>/team | Add a new registered user or a group of users to the team of a project |
PATCH | api/v1/project/<:projectId>/team/<:memberId> | Remove a single team member from a project |
DELETE | api/v1/project/<:projectId> | Delete a project |
POST | api/v1/question/<:id>/answer | Answer a question |
GET | api/v1/answer/<:id> | Get a specific answer by its id |
GET | api/v1/answer | Fetch a collection of answers |
- Node JS
- Express
- Redis
- Mocha & Chai
- ESLint
- Babel
- Hound CI
- Github actions CI
The API is currently in version 1 (v1) and it is hosted on heroku at Base URL
- Ayodele Akinbohun