Git Product home page Git Product logo

gabriellopes00 / helpy-node Goto Github PK

View Code? Open in Web Editor NEW
4.0 1.0 0.0 1.63 MB

An app that help woman in risky situations. Receiving a help requests with current victim location, and providing a better help action ๐Ÿ†˜๐Ÿšจ

JavaScript 4.65% TypeScript 95.11% Shell 0.24%
nodejs react-native typescript help-women women web-sockets tdd solid clean-architecture react solid-principles jest-tests styled-components mongodb ddd

helpy-node's Introduction

API Help Women

An API built with

typescript nodejs socket.io docker eslint jest heroku

Api Structure

Clean Architecture Schema

This project structure is inspired in clean architecture code structure, by Uncle Bob. The main purpose of clean architecture is creating a strong project structure, splitting all the application in layers. The best advantages of using it, is create a application independent of any frameworks, tool, database or technology, being easy to handle the code, create a new features, fix any issue, or change some framework, thanks to the adapters and ports.

Folders ๐Ÿ—‚

root
โ”œโ”€โ”€ .github                 - Github setup files
โ”‚     โ””โ”€โ”€ assets
โ”‚     โ””โ”€โ”€ workflow
โ”œโ”€โ”€ src                     - Application main code
โ”‚    โ”‚โ”€โ”€ app                - Composition layer, entry point code
โ”‚    โ”‚    โ””โ”€โ”€ routes        - routes files
โ”‚    โ”‚    โ””โ”€โ”€ setup         - server config (middlewares, cors, body-parser)
โ”‚    โ”‚    โ””โ”€โ”€ builds        - classes instances
โ”‚    โ”‚    โ””โ”€โ”€ adapters      - components adapters
โ”‚    โ”œโ”€โ”€ config             - Some global config files (.env, path alias, logger)
โ”‚    โ”œโ”€โ”€ domain             - Business rules definition
โ”‚    โ”‚     โ””โ”€โ”€ entities
โ”‚    โ”‚     โ””โ”€โ”€ usecases
โ”‚    โ”œโ”€โ”€ infra              - External frameworks and libs implementation
โ”‚    โ”œโ”€โ”€ presentation       - External api communication layer (controllers, presenters, validators)
โ”‚    โ””โ”€โ”€ useCases           - Usecases implementation
โ””โ”€โ”€โ”€ tests                  - Components tests
      โ””โ”€โ”€ e2e
      โ””โ”€โ”€ unit

Logs ๐Ÿ“œ

All controllers unexpected errors are stored in the database, becoming available for future analysis and corrections. Having a console available, the errors and the requests data can be logged on console, for faster viewing while running the application.

Building and contributing ๐Ÿ› 

To run this project locally, you will have to install Nodejs and PostgreSQL on the machine, or run everything with Docker. After run the project, go to .env.example file, on project root, and rename it to .env, filling all the properties in the file with your information.

Cloning Repository
git clone https://github.com/gabriellopes00/help-women.git
or
git clone [email protected]:gabriellopes00/help-women.git
Running with Docker
docker-compose up
Running locally
npm install
npm run build
npm run start
Tests (jest) ๐Ÿงช
  • All โฏ yarn test
  • Coverage โฏ yarn test:ci
  • Unit โฏ yarn test:unit
  • e2e โฏ yarn test:e2e
Linting (eslint and prettier) ๐ŸŽญ
  • Lint(eslint) โฏ yarn lint
  • Style(prettier) โฏ yarn style
Statistics of the types of commits ๐Ÿ“Š๐Ÿ“ˆ

Following the standard of the Conventional Commits.

  • feature commits(amount) โฏ git shortlog -s --grep feat
  • test commits(amount) โฏ git shortlog -s --grep test
  • refactor commits(amount) โฏ git shortlog -s --grep refactor
  • chore commits(amount) โฏ git shortlog -s --grep chore
  • docs commits(amount) โฏ git shortlog -s --grep docs
  • build commits(amount) โฏ git shortlog -s --grep build

Contact ๐Ÿ“ฑ

Github Badge Linkedin Badge Twitter Badge Gmail Badge Facebook Badge Instagram Badge StackOverflow Badge

helpy-node's People

Contributors

gabriellopes00 avatar henrique2m avatar

Stargazers

 avatar  avatar  avatar  avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.