-
Notifications
You must be signed in to change notification settings - Fork 192
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
2 changed files
with
248 additions
and
52 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,73 +1,253 @@ | ||
<p align="center"> | ||
<a href="http://nestjs.com/" target="blank"><img src="https://nestjs.com/img/logo-small.svg" width="200" alt="Nest Logo" /></a> | ||
</p> | ||
|
||
[circleci-image]: https://img.shields.io/circleci/build/github/nestjs/nest/master?token=abc123def456 | ||
[circleci-url]: https://circleci.com/gh/nestjs/nest | ||
|
||
<p align="center">A progressive <a href="http://nodejs.org" target="_blank">Node.js</a> framework for building efficient and scalable server-side applications.</p> | ||
<p align="center"> | ||
<a href="https://www.npmjs.com/~nestjscore" target="_blank"><img src="https://img.shields.io/npm/v/@nestjs/core.svg" alt="NPM Version" /></a> | ||
<a href="https://www.npmjs.com/~nestjscore" target="_blank"><img src="https://img.shields.io/npm/l/@nestjs/core.svg" alt="Package License" /></a> | ||
<a href="https://www.npmjs.com/~nestjscore" target="_blank"><img src="https://img.shields.io/npm/dm/@nestjs/common.svg" alt="NPM Downloads" /></a> | ||
<a href="https://circleci.com/gh/nestjs/nest" target="_blank"><img src="https://img.shields.io/circleci/build/github/nestjs/nest/master" alt="CircleCI" /></a> | ||
<a href="https://coveralls.io/github/nestjs/nest?branch=master" target="_blank"><img src="https://coveralls.io/repos/github/nestjs/nest/badge.svg?branch=master#9" alt="Coverage" /></a> | ||
<a href="https://discord.gg/G7Qnnhy" target="_blank"><img src="https://img.shields.io/badge/discord-online-brightgreen.svg" alt="Discord"/></a> | ||
<a href="https://opencollective.com/nest#backer" target="_blank"><img src="https://opencollective.com/nest/backers/badge.svg" alt="Backers on Open Collective" /></a> | ||
<a href="https://opencollective.com/nest#sponsor" target="_blank"><img src="https://opencollective.com/nest/sponsors/badge.svg" alt="Sponsors on Open Collective" /></a> | ||
<a href="https://paypal.me/kamilmysliwiec" target="_blank"><img src="https://img.shields.io/badge/Donate-PayPal-ff3f59.svg"/></a> | ||
<a href="https://opencollective.com/nest#sponsor" target="_blank"><img src="https://img.shields.io/badge/Support%20us-Open%20Collective-41B883.svg" alt="Support us"></a> | ||
<a href="https://twitter.com/nestframework" target="_blank"><img src="https://img.shields.io/twitter/follow/nestframework.svg?style=social&label=Follow"></a> | ||
</p> | ||
<!--[](https://opencollective.com/nest#backer) | ||
[](https://opencollective.com/nest#sponsor)--> | ||
|
||
## Description | ||
|
||
[Nest](https://github.com/nestjs/nest) framework TypeScript starter repository. | ||
|
||
## Installation | ||
# [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/) | ||
|
||
## 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 | ||
|
||
<img align="right" width="300" src="https://firstcontributions.github.io/assets/Readme/clone.png" alt="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: | ||
|
||
```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. | ||
|
||
<img align="right" width="300" src="https://firstcontributions.github.io/assets/Readme/copy-to-clipboard.png" alt="copy URL to clipboard" /> | ||
|
||
For example: | ||
|
||
```bash | ||
$ npm install | ||
git clone [email protected]:this-is-you/hng_project.git | ||
``` | ||
|
||
## Running the app | ||
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 | ||
# development | ||
$ npm run start | ||
cd hng_project | ||
``` | ||
|
||
# watch mode | ||
$ npm run start:dev | ||
Now create a branch using the `git switch` command: | ||
|
||
# production mode | ||
$ npm run start:prod | ||
```bash | ||
git switch -c your-new-branch-name | ||
``` | ||
|
||
## Test | ||
For example: | ||
|
||
```bash | ||
# unit tests | ||
$ npm run test | ||
git switch -c add-alonzo-church | ||
``` | ||
|
||
### Make Changes | ||
|
||
# e2e tests | ||
$ npm run test:e2e | ||
Make your changes to the codebase. Ensure your code follows the project's coding standards and guidelines. | ||
|
||
# test coverage | ||
$ npm run test:cov | ||
### 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 | ||
``` | ||
|
||
## Support | ||
## 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. | ||
|
||
<img align="right" width="450" src="https://firstcontributions.github.io/assets/Readme/git-status.png" alt="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`: | ||
|
||
```bash | ||
git push -u origin your-branch-name | ||
``` | ||
|
||
replacing `your-branch-name` with the name of the branch you created earlier. | ||
|
||
<details> | ||
<summary> <strong>If you get any errors while pushing, click here:</strong> </summary> | ||
|
||
- ### Authentication Error | ||
<pre>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/<your-username>/first-contributions.git/'</pre> | ||
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. | ||
|
||
</details> | ||
|
||
## 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. | ||
|
||
<img style="float: right;" src="https://firstcontributions.github.io/assets/Readme/compare-and-pull.png" alt="create a pull request" /> | ||
|
||
Now submit the pull request. | ||
|
||
<img style="float: right;" src="https://firstcontributions.github.io/assets/Readme/submit-pull-request.png" alt="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. | ||
|
||
```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 start: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/) | ||
|
||
Nest is an MIT-licensed open source project. It can grow thanks to the sponsors and support by the amazing backers. If you'd like to join them, please [read more here](https://docs.nestjs.com/support). | ||
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. | ||
|
||
## Stay in touch | ||
## API Endpoints | ||
|
||
- Author - [Kamil Myśliwiec](https://kamilmysliwiec.com) | ||
- Website - [https://nestjs.com](https://nestjs.com/) | ||
- Twitter - [@nestframework](https://twitter.com/nestframework) | ||
All API endpoints can be referenced in the [API Reference](API_REFERENCE.md) document. | ||
|
||
## License | ||
## Versioning | ||
|
||
Nest is [MIT licensed](LICENSE). | ||
This project is versioned to ensure backward compatibility and easy maintenance. The current version is [version]. |