PHP Course Project

Launched Tuesday, December 21st, 2021
This is the project that I used a few times for teaching PHP for juniors devs. It was built with PHP, PostgreSQL, HTML, CSS and JavaScript.

Note for english speakers

This is the project that I used for teaching basic PHP to Junior devs at a company that I used to work for here in Brazil, so:

  • This project is only available in Brazilian Porgutuese.
  • The code was developed in a simplistic way for teaching purposes, putting aside more elaborate code patterns.

Sobre o projeto

Este projeto era utilizado para ministrar as minhas aulas de introdução ao PHP para iniciantes em programação. Basicamente trata-se de um sistema de folha de pagamento simplificado de uma prefeitura fictícia.

Esta aplicação web era desenvolvida ao longo de uma carga horária de 64 horas, que englobava HTML, PostgreSQL, PHP básico, comunicação entre PHP e banco de dados e programação orientada a objetos. Como o foco do curso em questão era o back-end, toda interface já tinha sido desenvolvida por mim antes do início das aulas, assim, os alunos focavam apenas em desenvolver a regra de negócio.

A interface utilizada neste projeto foi idealizada pelo meu amigo Amilton Schlemper - UI/UX Designer. Você pode conferir a prototipação em detalhes no arquivo .fig, localizado na pasta assets deste repositório.

Live demo

O projeto não está disponível porque não foi encontrada nenhuma solução gratuita viável para hospedagem.

Funcionalidades

As funcionalidades básicas desta aplicação são:

  • Cadastro, remoção e listagem de cidades
  • Cadastro, remoção e listagem de cargos
  • Cadastro, remoção e listagem de funcionários
  • Cálculo de pagamento de funcionário
  • Consulta de pagamento de funcionário

Front-end

O lado do cliente desta aplicação foi desenvolvido com HTML, e CSS, contando com JavaScript apenas para pequenas manipulações.

Layout

Como a trilha de aprendizados era de fato o back-end, a aplicação conta apenas com interface desktop.

Desktop 1Desktop 2Desktop 3Desktop 4Desktop 5Desktop 6

Back-end

Esta aplicação foi escrita em Vanilla PHP, utilizando apenas o composer para fazer a inclusão automática das classes através do namespaces.

Como o foco principal deste projeto é a didática, o mesmo foi desenvolvido de forma simplificada. Assim sendo, para fins de produção/comerciais, seu código fonte teria de ser refatorado e reescrito em uma arquitetura mais elaborada.

Banco de Dados

O banco de dados escolhido para desenvolver este projeto foi o PostgreSQL. Veja a seguir uma breve descrição de suas tabelas:

  • tbcidade: armazena as cidades a serem vinculadas aos funcionários;
  • tbcargo: armazena os cargos a serem vinculados aos funcionários;
  • tbfuncionario: armazena os funcionários. Possui vinculo com a tabela tbcargo e tbcidade;
  • tbpagamento: armazena pagamentos realizados para os funcionários.

Como configurar

Se você deseja fazer um fork deste projeto, você precisará configurar as seguintes variáveis de ambiente:

  • DATABASE_URL (String de conexão com o banco de dados)

Autores

Full stack desenvolvido por Matheus do Livramento.

GitHub | LinkedIn | Website

Interface do usuário criada por Amilton Schlemper.

Dribble | LinkedIn