All Projects → wilsonneto-dev → Blogfy_API

wilsonneto-dev / Blogfy_API

Licence: other
🚀 (WORK IN PROGRESS) Blogfy: API - A simple and ready-to-use Blog CMS for people who just want to write articles without worrying about tech stuff! Watch the project development live on twitch: twitch.tv/wilsonnetodev

Programming Languages

typescript
32286 projects

Projects that are alternatives of or similar to Blogfy API

shopify-node-express-app
Simple Shopify app with Express and Node.js that connects to a Shopify store via OAuth.
Stars: ✭ 20 (-4.76%)
Mutual labels:  express-js
Registration-and-Login-using-MERN-stack
Simple Registration and Login component with MERN stack
Stars: ✭ 210 (+900%)
Mutual labels:  express-js
babyfoot
Simple CQRS/ES Node+Express+TypeScript REST API
Stars: ✭ 14 (-33.33%)
Mutual labels:  express-js
Middleman-NPM
Middleman is an intuitive Express performance monitor for all your middleware 🎉
Stars: ✭ 13 (-38.1%)
Mutual labels:  express-js
GitInfo-Git-for-Google-Assistant
GitInfo is a conversational data retrieval bot for Github repositories. It provides a conversational experience to access information. Information that can be retrieved using GitInfo include: stars, latest commit details , no of forks , no of issues etc.
Stars: ✭ 18 (-14.29%)
Mutual labels:  express-js
Apriliya-Api
Simple Web API with user authentication
Stars: ✭ 19 (-9.52%)
Mutual labels:  express-js
MyAPI
A template to create awesome APIs easily ⚡️
Stars: ✭ 117 (+457.14%)
Mutual labels:  express-js
gancio
a shared agenda for local communities (with activitypub support)
Stars: ✭ 21 (+0%)
Mutual labels:  express-js
content-moderation-image-api
An NSFW Image Classification REST API for effortless Content Moderation built with Node.js, Tensorflow, and Parse Server
Stars: ✭ 50 (+138.1%)
Mutual labels:  express-js
auto-async-wrap
automatic async middleware wrapper for expressjs errorhandler.
Stars: ✭ 21 (+0%)
Mutual labels:  express-js
svelte-express-boilerplate
Boilerplate for developing full stack apps with Express and Svelte.js 📦
Stars: ✭ 60 (+185.71%)
Mutual labels:  express-js
teaching-nodejs-expressjs-framework-spring-2019-2020
Complete Node-Express Application
Stars: ✭ 16 (-23.81%)
Mutual labels:  express-js
mern-ecommerce
MERN Stack ecommerce site
Stars: ✭ 122 (+480.95%)
Mutual labels:  express-js
scotch-scraping-node
Simple app for scraping author profiles and tutorials from Scotch.io - https://scotch.io.
Stars: ✭ 15 (-28.57%)
Mutual labels:  express-js
express-crud-router
Simply expose resource CRUD (Create Read Update Delete) routes for Express & Sequelize. Compatible with React Admin Simple Rest Data Provider
Stars: ✭ 109 (+419.05%)
Mutual labels:  express-js
HIMS
Hospital Information Management System create using Node Js
Stars: ✭ 41 (+95.24%)
Mutual labels:  express-js
express-file-upload
Node.js Express Upload/Download File Rest APIs example with Multer
Stars: ✭ 64 (+204.76%)
Mutual labels:  express-js
mern-boilerplate
React + Express + Webpack + Mongo = MERN Stack Boilerplate
Stars: ✭ 39 (+85.71%)
Mutual labels:  express-js
BotBlock.org
BotBlock - The List of Discord Bot Lists and Services
Stars: ✭ 29 (+38.1%)
Mutual labels:  express-js
socketChat
💬 A real-time messaging application built using Socket.IO and Express
Stars: ✭ 31 (+47.62%)
Mutual labels:  express-js

🚀 Blogfy CMS

A simple and ready-to-use Blog CMS for people who just want to write articles without worrying about tech stuff!
Watch the project development live on twitch: twitch.tv/wilsonnetodev


Using:

TypeORM
We need a good ORM to deal with persistence stuff
Clean Architecture
Using a modular DDD approach with Clean Architecture
Celebrate and JOI
Libs for validatint inputs from clients
Express
The API framework
Bcryptjs
Lib to deal with criptography stuff
jsonwebtoken
Lib to deal with JWT tokens
Jest
Using jest for the unity tests
Tsyringe
Dependency Injection library
Supertest
Using supertest for integrations tests
Typescript
For typing the JS
Eslint and Prettier
Used to guarantee code standards

Running in Dev Enviroment / Scripts

First of all, you will need to install the dependencies:
npm install

Running the app:
npm run dev

Running the tests:
npm run test

Running the tests on watch mode:
npm run test:watch

Running the integration tests:
npm run test:integration

Running the Postgres in a container:
docker run --name my_container_postgres -e POSTGRES_PASSWORD=password -p 5432:5432 -d postgres
docker run -d --name blogfy-database -p 5432:5432 -e POSTGRES_PASSWORD=blogfy123 -e POSTGRES_USER=blogfy -e POSTGRES_DB=blogfy postgres


Migrations

Running a TypeORM migrations:
npm run typeorm migration:run

Reverting a TypeORM migrations:
npm run typeorm migration:revert

Creating a TypeORM migration:
npm run typeorm -- migration:create --name CreateUsers --dir ./src/modules/identity/infra/data/typeorm/migrations

TypeORM Migration example:

/* eslint-disable class-methods-use-this */
import { MigrationInterface, QueryRunner, Table } from 'typeorm';

export default class CreateAppointments1600772700374
  implements MigrationInterface {
  public async up(queryRunner: QueryRunner): Promise<void> {
    await queryRunner.createTable(
      new Table({
        name: 'appointments',
        columns: [
          {
            name: 'id',
            type: 'varchar',
            isPrimary: true,
            generationStrategy: 'uuid',
          },
          {
            name: 'provider',
            type: 'varchar',
            isNullable: false,
          },
          {
            name: 'date',
            type: 'timestamp with time zone',
            isNullable: false,
          },
        ],
      }),
    );
  }

  public async down(queryRunner: QueryRunner): Promise<void> {
    await queryRunner.dropTable('appointments');
  }
}

Utils:

Generating a secret key:
node -e "console.log(require('crypto').randomBytes(256).toString('base64'));"

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].