Git Product home page Git Product logo

point-control-api's Introduction

PointControl - Api

Description   |    Demonstrations   |    Requirements   |    Technologies   |    Usage   |    Contributors


License Repo size Top lang Stars repo Forks repo Pull requests Last commit

Report bug · Request feature


Description

This project is the Back-end (Api) of a company point control application. To illustrate in a simple way, this api controls and stores all employee data, entry points, exit, pause, absences from work and all this being managed by employees of the company itself, who have specific and special credentials for this.

Project developed as an activity of my bachelor's degree in information systems, with the main objective of having a very descriptive and extensive documentation, for anyone to understand the features and learn from it. The api framework was built on clean architecture and documented with Swagger.

To facilitate the development of the project and better describe everything that was created, a flowchart of some of the project's features and relevant information at the time of its development was designed, using Whimsical.

To access the other projects integrated to this one, access:

This project was done in partnership with:

Demonstrations

Front-end to admin users

2022-10-10.15-45-34.mp4

Front-end to employees

2022-10-26.20-55-54.mp4

Requirements

Technologies

  • Nodejs
  • Typescript
  • Express
  • TypeORM
  • IoRedis
  • Nodemailer
  • Swagger (Documentation)
  • Eslint
    • Airbnb-config with another pessoal rules
    • Import helpers plugin
  • Prettier
  • Commitizen

Usage

You can clone it on your pc using the command:

git clone https://github.com/Lissone/pointControl-api.git
cd pointControl-api

Initial settings before running project

Because we use external services, it is necessary to make some simple configurations before running the project.

Database configuration

You must create the database before running an api (dbPointControl).

// .\src\external\database\dbConfig.ts

const connection = createConnection({
  type: 'mssql',
  host: process.env.DB_HOST,
  port: 1433,
  username: process.env.DB_USERNAME,
  password: process.env.DB_PASSWORD,
  database: process.env.DB_NAME,
  entities: [**Entities**],
  synchronize: true,
  logging: false,
  options: {
    enableArithAbort: true
  }
})

Need create first global admin user:

Default password: 123456

INSERT INTO [dbo].[user]
(id, name, email, password, role, first_access, company_cnpj, created_at, updated_at)
VALUES (
  '08e5ad8d-5fa3-41a2-a732-b997336b4cf5',
  'Global Admin',
  '[email protected]',
  '$2a$05$MG6XoOEDPjtXVesTW8P2S.UkNzii1ai7VEAvBnToDHZq03sSij2vi',
  'global.admin',
  1,
  NULL,
  '2001-12-11T22:30:00Z',
  '2001-12-11T22:30:00Z'
)

Email configuration

If you are using your gmail account to use the messaging system with Nodemailer, you should give access to your account to less secure apps, even though they are secure.

Need to add environment variables:

# .\.env

# DEFAULT
# APP
APP_PORT=5000
APP_NAME=point-control-api
APP_VERSION=0.0.0

# AUTH
SECRET_KEY=super_scret # JWT secret key

# REDIS
REDIS_HOST=localhost
REDIS_PORT=6379

# DATABASE
DB_USERNAME=sa
DB_PASSWORD=123456
DB_NAME=dbPointControl
DB_HOST=localhost

# NODEMAILER
NODEMAILER_USER= # Email used for sending messages
NODEMAILER_PASS= # Your email password

If you have Docker, and want to run the container, use the command:

# Build the project container
docker-compose build
# Up container
docker-compose up

Install dependencies using:

yarn
#or
npm install

Run api:

yarn dev
#or
npm run dev

Contributors

Thanks goes to these wonderful people, who were part of the project from start to finish:

Moises Morais photo
Moises Morais
Stenio Rapchan photo
Stenio Rapchan
Vinicius Almeida photo
Vinicius Almeida

License

Distributed under the MIT License. See LICENSE for more information.


point-control-api's People

Contributors

lissone avatar

Stargazers

Fernanda Mendonça avatar Vinicius Silva de Almeida avatar Moises Morais avatar

Watchers

 avatar

Forkers

mikamorais

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.