GithubHelp home page GithubHelp logo

anndream / clock-in-out Goto Github PK

View Code? Open in Web Editor NEW

This project forked from caballerog/clock-in-out

0.0 1.0 0.0 808 KB

A clock-in/out system using nestJS, PostgreSQL, TypeORM, Angular, Arduino, RxJS

License: MIT License

JavaScript 3.33% TypeScript 88.35% HTML 6.39% CSS 0.84% Shell 1.08%

clock-in-out's Introduction

Clock-in/out

A clock-in/out system using nestJS, PostgreSQL, TypeORM, Angular, Arduino, RxJS

In this post I'm going to summerize all the links (you will find them down below) about clock-in/out system. I’ve used NestJS (framework of NodeJS) and Angular.

The idea of this project is to develop a clock-in/out system using Arduino as NFC transmitter to a NodeJS API.For the frontend project, I’ve chosen Angular with RxJS. This allows me to have almost a realtime system. Since RxJS polling is enough for my needs, socketIO is not required.

You can find more information in the following links:


In this first post of the series of post about the clock-in/out system I'm going to describe the system's architecture. The best way to describe the problem which our system will resolve is using a diagram. In this diagram you can see different components which can be in different or in the same server. The Figure 1 show the diagram used to build the clock-in/out system.

Diagram

So, the components of our system are the following:

  • ID Card: All users have a card which is identified using an UID. The way to work is that the user pass their card near of a Arduino system which has a NFC reader.

  • Arduino: There are two Arduino in the system. The first is used to clock-in and the second is used to clock-out. So, each Arduino send to the backend the UID's card using the POST verb over HTTPS. The Arduino system have a NFC and a WiFi chip:

    1. The first is used to read the card.
    2. The second is used to connect to the LAN to send the UID to the server.
  • Backend: The backend is developed using NestJS which is a framework over express (although you can use other libraries as fastify) which can developed software using the SOLID principles and the syntax as Angular. This backend will be connected to a relational database Postgres using TypeORM as ORM.

  • Frontend: The frontend is developed using Angular which is a framework over JavaScript which is a good option when you want scale large webapps (client-side). In this case, is used to illustrated how to using the last Angular's version and good practices. The frontend is develop using RxJS, RxJS is a library for reactive programming using Observables, to make it easier to compose asynchronous or callback-based code. The connection between frontend and backend could have been using sockets to obtain real-time but using polling you obtained a result as a socket (near real-time) but more easiest.

There are several components which could be developed in the future as an admin panel to manage information about users and cards, personal information about my check-in/out in the system, the frontend could do search by users to know if the user is in the building or not. Maybe, in the future this features could be develop but today will go to presented a basic system of clock-in/clock-out.

clock-in-out's People

Contributors

caballerog avatar

Watchers

James Cloos 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.