Skip to content

hngprojects/hng_boilerplate_nestjs

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

[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 (v14 or later)
  • npm (Node Package Manager, included with Node.js)
  • NestJs (NestJS' Documentation)
  • Git

Setup Guide

Detailed guide on setting and starting the Application

Contribution Guide

Getting Started

If you don't have git on your machine, install it.

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

clone this 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:

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.

copy URL to clipboard

For example:

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):

cd hng_project

Now create a branch using the git switch command:

git switch -c your-new-branch-name

For example:

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.

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.

git status

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:

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 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.

create a pull request

Now submit the pull request.

submit 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.

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.

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.

cp .env.example .env

Edit the .env file to match your environment configuration.

4. Compile TypeScript

Compile the TypeScript code to JavaScript.

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.

npm run dev

6. Run the Production Server

To run the application in a production environment, use the following command:

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

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 document.

Versioning

This project is versioned to ensure backward compatibility and easy maintenance. The current version is [version].