From 6247735cdf8b28bd2d931fbcd768b5df9070e901 Mon Sep 17 00:00:00 2001 From: hirsch88 Date: Wed, 14 Mar 2018 18:55:34 +0100 Subject: [PATCH 1/5] face lift for our readme --- README.md | 107 +++++++++++++++++++++++++++++----------------- w3tec-divider.png | Bin 0 -> 728 bytes w3tec-logo.png | Bin 0 -> 30301 bytes 3 files changed, 67 insertions(+), 40 deletions(-) create mode 100644 w3tec-divider.png create mode 100644 w3tec-logo.png diff --git a/README.md b/README.md index c034a5bb..506f0414 100644 --- a/README.md +++ b/README.md @@ -1,35 +1,38 @@ -# Express Typescript Boilerplate - -[![Dependency Status](https://david-dm.org/w3tecch/express-typescript-boilerplate/status.svg?style=flat)](https://david-dm.org/w3tecch/express-typescript-boilerplate) -[![Build Status](https://travis-ci.org/w3tecch/express-typescript-boilerplate.svg?branch=master)](https://travis-ci.org/w3tecch/express-typescript-boilerplate) -[![Build status](https://ci.appveyor.com/api/projects/status/f8e7jdm8v58hcwpq/branch/master?svg=true&passingText=Windows%20passing&pendingText=Windows%20pending&failingText=Windows%20failing)](https://ci.appveyor.com/project/dweber019/express-typescript-boilerplate/branch/master) - -> A delightful way to building a RESTful API Services with beautiful code written in TypeScript. -> An Node.js Web-Service boilerplate/skeleton/starter-kit featuring -> Inspired by the awesome framework [laravel](https://laravel.com/) in PHP and of the repositories from [pleerock](https://github.com/pleerock). -[TypeScript](https://www.typescriptlang.org/), -[Express](https://expressjs.com/), -[Winston](https://github.com/winstonjs/winston), -[Microframework](https://github.com/pleerock/microframework), -[TypeDI](https://github.com/pleerock/typedi), -[TypeORM](https://github.com/typeorm/typeorm), -[TsLint](http://palantir.github.io/tslint/), -[@types](https://www.npmjs.com/~types), -[Jest](https://facebook.github.io/jest/), -[Swagger](http://swagger.io/), -[validatejs](https://validatejs.org/), -[GraphQL](http://graphql.org/), -[DataLoaders](https://github.com/facebook/dataloader), -by [w3tech](https://github.com/w3tecch) - -## Why +

+ w3tec +

+ +

❯ Express Typescript Boilerplate

+ +

+ + dependency + + + travis + + + appveyor + +

+ +

+ A delightful way to building a RESTful API Services with beautiful code written in TypeScript.
+ > Inspired by the awesome framework laravel in PHP and of the repositories from pleerock +

+ +
+ +![divider](./w3tec-divider.png) + +## ❯ Why Our main goal with this project is a feature complete server application. We like you to be focused on your business and not spending hours in project configuration. Try it!! We are happy to hear your feedback or any kind of new features. -## Features +### Features - **Beautiful Code** thanks to the awesome annotations of the libraries from [pleerock](https://github.com/pleerock). - **Easy API Testing** with included e2e testing. @@ -50,7 +53,9 @@ Try it!! We are happy to hear your feedback or any kind of new features. - **GraphQL** provides as a awesome query language for our api [GraphQL](http://graphql.org/). - **DataLoaders** helps with performance thanks to caching and batching [DataLoaders](https://github.com/facebook/dataloader). -## Table of Contents +![divider](./w3tec-divider.png) + +## ❯ Table of Contents - [Getting Started](#getting-started) - [Scripts and Tasks](#scripts-and-tasks) @@ -64,9 +69,11 @@ Try it!! We are happy to hear your feedback or any kind of new features. - [Related Projects](#related-projects) - [License](#license) -## Getting Started +![divider](./w3tec-divider.png) -### Step 1: Set up the Development Environment +## ❯ Getting Started + +### Step 1: Set up the Development Environment You need to set up your development environment before you can do anything. @@ -112,9 +119,11 @@ npm start serve > This starts a local server using `nodemon`, which will watch for any file changes and will restart the sever according to these changes. > The server address will be displayed to you as `http://0.0.0.0:3000`. -## Scripts and Tasks +![divider](./w3tec-divider.png) + +## ❯ Scripts and Tasks -All script are defined in the package.json file, but the most important ones are listed here. +All script are defined in the `package-scripts.js` file, but the most important ones are listed here. ### Install @@ -158,7 +167,9 @@ All script are defined in the package.json file, but the most important ones are To debug your code run `npm start build` or hit `cmd + b` to build your app. Then, just set a breakpoint and hit `F5` in your Visual Studio Code. -## API Routes +![divider](./w3tec-divider.png) + +## ❯ API Routes The route prefix is `/api` by default, but you can change this in the .env file. The swagger and the monitor route can be altered in the `.env` file. @@ -172,7 +183,9 @@ The swagger and the monitor route can be altered in the `.env` file. | **/api/users** | Example entity endpoint | | **/api/pets** | Example entity endpoint | -## Project Structure +![divider](./w3tec-divider.png) + +## ❯ Project Structure | Name | Description | | --------------------------------- | ----------- | @@ -212,7 +225,9 @@ The swagger and the monitor route can be altered in the `.env` file. | ormconfig.json | TypeORM configuration for the database. Used by seeds and the migration. (generated file) | | mydb.sql | SQLite database for integration tests. Ignored by git and only available after integration tests | -## Logging +![divider](./w3tec-divider.png) + +## ❯ Logging Our logger is [winston](https://github.com/winstonjs/winston). To log http request we use the express middleware [morgan](https://github.com/expressjs/morgan). We created a simple annotation to inject the logger in your service (see example below). @@ -230,7 +245,9 @@ export class UserService { ... ``` -## Event Dispatching +![divider](./w3tec-divider.png) + +## ❯ Event Dispatching Our we use this awesome repository [event-dispatch](https://github.com/pleerock/event-dispatch) for event dispatching. We created a simple annotation to inject the EventDispatcher in your service (see example below). All events are listed in the `events.ts` file. @@ -253,7 +270,9 @@ export class UserService { } ``` -## Seeding +![divider](./w3tec-divider.png) + +## ❯ Seeding Isn't it exhausting to create some sample data for your database, well this time is over! @@ -367,7 +386,9 @@ npm start db.seed | `npm start "db.seed --seeds "` | Add a different path to your seeds (Default: `src/database/seeds/`) | | `npm start "db.seed --config "` | Path to your ormconfig.json file | -## Run in Docker container +![divider](./w3tec-divider.png) + +## ❯ Run in Docker container ### Install Docker @@ -446,7 +467,9 @@ DB_HOST=localhost DB_PORT=3306 ``` -## Further Documentations +![divider](./w3tec-divider.png) + +## ❯ Further Documentations | Name & Link | Description | | --------------------------------- | --------------------------------- | @@ -468,14 +491,18 @@ DB_PORT=3306 | [GraphQL Documentation](http://graphql.org/graphql-js/) | A query language for your API. | | [DataLoader Documentation](https://github.com/facebook/dataloader) | DataLoader is a generic utility to be used as part of your application's data fetching layer to provide a consistent API over various backends and reduce requests to those backends via batching and caching. | -## Related Projects +![divider](./w3tec-divider.png) + +## ❯ Related Projects - [Microsoft/TypeScript-Node-Starter](https://github.com/Microsoft/TypeScript-Node-Starter) - A starter template for TypeScript and Node with a detailed README describing how to use the two together. - [express-graphql-typescript-boilerplate](https://github.com/w3tecch/express-graphql-typescript-boilerplate) - A starter kit for building amazing GraphQL API's with TypeScript and express by @w3tecch - [aurelia-typescript-boilerplate](https://github.com/w3tecch/aurelia-typescript-boilerplate) - An Aurelia starter kit with TypeScript - [Auth0 Mock Server](https://github.com/hirsch88/auth0-mock-server) - Useful for e2e testing or faking an oAuth server -## License +![divider](./w3tec-divider.png) + +## ❯ License [MIT](/LICENSE) diff --git a/w3tec-divider.png b/w3tec-divider.png new file mode 100644 index 0000000000000000000000000000000000000000..209b540440e78b6603bb46d249e69891da99331f GIT binary patch literal 728 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 Date: Wed, 14 Mar 2018 18:57:52 +0100 Subject: [PATCH 2/5] minimize logo --- README.md | 2 +- w3tec-logo.png | Bin 30301 -> 26656 bytes 2 files changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 506f0414..cce7c42d 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,5 @@

- w3tec + w3tec

❯ Express Typescript Boilerplate

diff --git a/w3tec-logo.png b/w3tec-logo.png index 8c2e1df5c54fa8f43bdd9714d985d11bca55bc6b..b9d594f7681d2dc1876a24cfd3a1e2ab4774153b 100644 GIT binary patch literal 26656 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 Date: Wed, 14 Mar 2018 19:06:48 +0100 Subject: [PATCH 3/5] Remove tick --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index cce7c42d..3a127b70 100644 --- a/README.md +++ b/README.md @@ -18,7 +18,7 @@

A delightful way to building a RESTful API Services with beautiful code written in TypeScript.
- > Inspired by the awesome framework laravel in PHP and of the repositories from pleerock + Inspired by the awesome framework laravel in PHP and of the repositories from pleerock


From 4eae03caec583425819988b056637717d5d9fd6e Mon Sep 17 00:00:00 2001 From: hirsch88 Date: Wed, 14 Mar 2018 21:09:15 +0100 Subject: [PATCH 4/5] improve doc header --- README.md | 28 ++++++++++++++++------------ 1 file changed, 16 insertions(+), 12 deletions(-) diff --git a/README.md b/README.md index 3a127b70..3566b591 100644 --- a/README.md +++ b/README.md @@ -23,6 +23,8 @@
+> An Node.js Web-Service boilerplate/skeleton/starter-kit with TypeScript, Express, Winston, Microframework, TypeDI, TypeORM, TsLint, @types, Jest, Swagger, validatejs, GraphQL, DataLoaders, by w3tech + ![divider](./w3tec-divider.png) ## ❯ Why @@ -57,17 +59,17 @@ Try it!! We are happy to hear your feedback or any kind of new features. ## ❯ Table of Contents -- [Getting Started](#getting-started) -- [Scripts and Tasks](#scripts-and-tasks) -- [Debugger in VSCode](#debugger-in-vscode) -- [API Routes](#api-routes) -- [Project Structure](#project-structure) -- [Logging](#logging) -- [Event Dispatching](#event-dispatching) -- [Seeding](#seeding) -- [Further Documentations](#further-documentation) -- [Related Projects](#related-projects) -- [License](#license) +- [Getting Started](#-getting-started) +- [Scripts and Tasks](#-scripts-and-tasks) +- [Debugger in VSCode](#-debugger-in-vscode) +- [API Routes](#-api-routes) +- [Project Structure](#-project-structure) +- [Logging](#-logging) +- [Event Dispatching](#-event-dispatching) +- [Seeding](#-seeding) +- [Further Documentations](#-further-documentation) +- [Related Projects](#-related-projects) +- [License](#-license) ![divider](./w3tec-divider.png) @@ -162,7 +164,9 @@ All script are defined in the `package-scripts.js` file, but the most important - Run `npm start db.seed` to seed your seeds into the database. -## Debugger in VSCode +![divider](./w3tec-divider.png) + +## ❯ Debugger in VSCode To debug your code run `npm start build` or hit `cmd + b` to build your app. Then, just set a breakpoint and hit `F5` in your Visual Studio Code. From f6ba3c850d4926966433df441f97f7bced9e6aa7 Mon Sep 17 00:00:00 2001 From: hirsch88 Date: Wed, 14 Mar 2018 21:18:06 +0100 Subject: [PATCH 5/5] Add tech-stack --- README.md | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 3566b591..c2c7b5f5 100644 --- a/README.md +++ b/README.md @@ -2,7 +2,7 @@ w3tec

-

❯ Express Typescript Boilerplate

+

Express Typescript Boilerplate

@@ -14,6 +14,9 @@ appveyor + + StackShare +