https://github.com/hngprojects/hng_boilerplate_nestjs
Description
https://github.com/hngprojects/hng_boilerplate_nestjs
Last synced: 2 months ago
JSON representation
Description
- Host: GitHub
- URL: https://github.com/hngprojects/hng_boilerplate_nestjs
- Owner: hngprojects
- License: apache-2.0
- Created: 2024-06-09T14:20:08.000Z (about 1 year ago)
- Default Branch: dev
- Last Pushed: 2025-03-02T20:28:13.000Z (3 months ago)
- Last Synced: 2025-04-11T23:16:26.211Z (2 months ago)
- Language: Handlebars
- Size: 7.22 MB
- Stars: 185
- Watchers: 5
- Forks: 191
- Open Issues: 112
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# [App Name] Integration Documentation
## Overview
[Description]
## Folder Structure
```
|--- src
| |--- database
| |--- modules
| |--- shared
| |--- app.module.ts
| |--- main.ts
|--- .env.local
|--- .gitignore
|--- package.json
|--- tsconfig.json
```## Dependencies (Dev)
- Node.js
- TypeScript
- Express
- ts-node-dev
- [Other dependencies including nestjs' dependencies]## Getting Started
Before you begin, ensure you have the following installed on your machine:
- [Node.js](https://nodejs.org/) (v14 or later)
- [npm](https://www.npmjs.com/) (Node Package Manager, included with Node.js)
- [NestJs](https://docs.nestjs.com) (NestJS' Documentation)
- [Git](https://git-scm.com/)## Setup Guide
#### Detailed guide on setting and starting the Application
- [Setup Guide](setup-guide.md)
## Contribution Guide
## Getting Started
#### If you don't have git on your machine, [install it](https://docs.github.com/en/get-started/quickstart/set-up-git).
## Fork this repository
Fork this repository by clicking on the fork button on the top of this page.
This will create a copy of this repository in your account.## Clone the repository
Now clone the forked repository to your machine. Go to your GitHub account, open the forked repository, click on the code button and then click the _copy to clipboard_ icon.
Open a terminal and run the following git command:
```bash
git clone "url you just copied"
```where "url you just copied" (without the quotation marks) is the url to this repository (your fork of this project). See the previous steps to obtain the url.
For example:
```bash
git clone [email protected]:this-is-you/hng_project.git
```where `this-is-you` is your GitHub username. Here you're copying the contents of the first-contributions repository on GitHub to your computer.
## Create a branch
Change to the repository directory on your computer (if you are not already there):
```bash
cd hng_project
```Now create a branch using the `git switch` command:
```bash
git switch -c your-new-branch-name
```For example:
```bash
git switch -c add-alonzo-church
```### Make Changes
Make your changes to the codebase. Ensure your code follows the project's coding standards and guidelines.
### Run Tests
Run the existing tests to ensure your changes do not break anything. If you added new functionality, write corresponding tests.
```sh
npm run test
```## commit those changes
Now open `Contributors.md` file in a text editor, add your name to it. Don't add it at the beginning or end of the file. Put it anywhere in between. Now, save the file.
If you go to the project directory and execute the command `git status`, you'll see there are changes.
Add those changes to the branch you just created using the `git add` command:
## Push changes to GitHub
Push your changes using the command `git push`:
```bash
git push -u origin your-branch-name
```replacing `your-branch-name` with the name of the branch you created earlier.
If you get any errors while pushing, click here:
- ### Authentication Error
remote: Support for password authentication was removed on August 13, 2021. Please use a personal access token instead.
remote: Please see https://github.blog/2020-12-15-token-authentication-requirements-for-git-operations/ for more information.
fatal: Authentication failed for 'https://github.com//first-contributions.git/'
Go to [GitHub's tutorial](https://docs.github.com/en/authentication/connecting-to-github-with-ssh/adding-a-new-ssh-key-to-your-github-account) on generating and configuring an SSH key to your account.## Submit your changes for review into Staging
If you go to your repository on GitHub, you'll see a `Compare & pull request` button. Click on that button.
Now submit the pull request.
Soon your changes will be merged into the staging branch of this project. You will get a notification email once the changes have been merged.
## Setup Instructions
### 1. Clone the Repository
First, clone the repository to your local machine using Git.
```sh
git clone https://github.com/your-username/[app-name].git
cd [app-name]
```### 2. Install Dependencies
Navigate to the project directory and install the required dependencies.
```sh
npm install
```### 3. Configure Environment Variables
Create a `.env` file in the root directory of the project and add your environment-specific variables. You can use the provided `.env.example` file as a reference.
```sh
cp .env.example .env
```Edit the `.env` file to match your environment configuration.
### 4. Compile TypeScript
Compile the TypeScript code to JavaScript.
```sh
npm run build
```### 5. Run the Development Server
Start the development server with the following command. This will also watch for any changes in your code and automatically restart the server.
```sh
npm run dev
```### 6. Run the Production Server
To run the application in a production environment, use the following command:
```sh
npm run start
```### 7. Verify the Setup
Open your browser and navigate to `http://localhost:3000/api/v1/` to verify that the application is running correctly.
## Folder Structure
Here's an overview of the project's folder structure:
```
|--- src
| |--- controllers
|--- v1
| |--- database
| |--- interfaces
| |--- middlewares
| |--- routes
| |--- v1
| |--- services
| |--- utils
| |--- server.ts
|--- .env
|--- app.ts
|--- .gitignore
|--- package.json
|--- tsconfig.json
```## Scripts
Here are some useful npm scripts that you can use during development and production:
- `npm run build`: Compiles the TypeScript code to JavaScript.
- `npm run start:dev`: Starts the development server with live reloading.
- `npm run start`: Starts the production server.
- `npm run test`: Runs the test suite (if available).
- `npm run lint`: Runs the linter to check for code style issues.## Additional Resources
- [Node.js Documentation](https://nodejs.org/en/docs/)
- [TypeScript Documentation](https://www.typescriptlang.org/docs/)
- [Express Documentation](https://expressjs.com/)## API Documentation and Postman Integration
### Swagger Documentation
The API documentation is available through Swagger UI at:
```http
http://localhost:3000/api/docs
```### Postman Integration
To import the API documentation into Postman:
1. Access the Swagger JSON endpoint:
```http
http://localhost:3000/api/docs-json
```2. In Postman:
- Click on "Import" in the top left corner
- Select "Link" tab
- Paste the Swagger JSON URL (http://localhost:3000/api/docs-json)
- Click "Continue" and then "Import"This will create a new collection in Postman with all available API endpoints, making it easier to test and interact with the API.
Note: Replace `localhost:3000` with your actual API host if different.
By following these steps, you should have your Node.js and TypeScript application up and running. If you encounter any issues, please refer to the documentation of the respective tools or seek help from the community.
## API Endpoints
All API endpoints can be referenced in the [API Reference](API_REFERENCE.md) document.
## Versioning
This project is versioned to ensure backward compatibility and easy maintenance. The current version is [version].