Skip to content

Sistema para controle de pontualidade dos funcionários iGet

Notifications You must be signed in to change notification settings

iget-master/ponto

Repository files navigation

Ponto

Sistema baseado em web, com o objetivo de monitorar a presença e pontualidade dos funcionários iGet.

Funcionalidades

  • Inclusão, exclusão e modificação de Funcionário
  • Ponto de entrada
  • Ponto de saída
  • Justificativa de falta
  • Relatório de ponto mensal por Funcionário com percentual de presença, dias de faltas e justificativas.
  • Painel de estatísticas para o Funcionário (semelhante ao seu relatório)

Funcionário

O funcionário deve ter os seguintes atributos:

  • Nome
  • Sobrenome
  • Horário de entrada e saída por dia da semana [FOREIGN TABLE]
  • Email [UNIQUE]
  • Senha

De forma que sua tabela users contenha as seguintes colunas:

  • id (No formato gerado pelo laravel)
  • name VARCHAR(255)
  • surname VARCHAR(255)
  • email VARCHAR(255) UNIQUE
  • password VARCHAR(255)
  • remember_token VARCHAR(100) NULL
  • Timestamps Laravel

Os horários de entrada e saída por dia, devem ser armazenados numa tabela relacional users_times contendo as seguintes colunas:

  • id (No formato gerado pelo laravel)
  • user_id (No formato da users.id)
  • weekday TINYINT (0=>Domingo, 6=>Sábado)
  • time_in TIME
  • time_out TIME

Esta tabela deve conter um indice UNIQUE(user_id, weekday) para impedir entradas duplicadas.

Ponto

Ao fazer login, o sistema deve verificar se o Funcionário está entrando para fazer ponto de entrada ou de saída e já exibir o botão correto no centro da tela principal, que deve conter também suas estatísticas.

Atenção! O botão de ponto só deve aparecer caso este seja um dia de trabalho do funcionário.

As "batidas de ponto" devem ser armazenadas na tabela relacional timetables:

  • id
  • user_id
  • date DATE
  • time_in TIME NULL
  • time_out TIME NULL
  • justification VARCHAR(255) NULL

Esta tabela deve conter um indice UNIQUE(user_id, date) para impedir entradas duplicadas. As colunas time_in e time_out podem ser nulas pois esta mesma tabela servirá para justificar faltas, atrasos e saídas antecipadas.

Diretivas de desenvolvimento

  • O sistema deve ser baseado em Laravel 4.2
  • Todo o seu desenvolvimento deve ser versionado no GitHub
  • Sua interface deve seguir o Google Material Design e utilizar o Twitter Bootstrap 3