Social Dev Institute, é uma aplicação para cadastro de Moradores de Rua e informações sobre campanhas socias. Aplicação desenvolvida em grupo durante o curso de Desenvolvimento FullStack oferecido pela Kenzie Academy Brasil aplicando todo o conhecimento adquirido durante a jornada. Neste projeto foi utilizada as melhores práticas na construção do projeto, com o uso das tecnologias TypeScript, Express, TypeORM em cima do Ambiente e execução de javascript, o NodeJS. A Kenzie é uma escola de programação com um ensino de qualidade que capacita seus aluno para se tornarem desenvolvedores FullStack em 12 meses!
Faz parte do projeto Api Social Dev
- Web Aplication: Aplicação Web contruida em ReactJs e Typescript
- TypeScript: Linguagem.
- NodeJs: Ambiente de Execução.
- Express: API Framework
- JsonWebToken: Autenticação JWT
- Postgres: Banco de Dados
- TypeORM: ORM
- Eslint: Padronização de código
- Jest: Testes
Uma API Rest, que retorna o conteúdo em JSON que vai ser consumida por um Front-end em ReactJS.
- Framework da API - Express
- Linguagem de Programação - TypeScript
- Banco de dados utilizado na aplicação - Postgres
- ORM - TypeORM
- Lib de testes - Jest
- Utilizar Eslint, Prettier e EditorConfig para padronizar o código em ambiente de desenvolvimento, com a style guide do AirBnb
[x] Criação de conta com (Nome, CPF, Email, Senha, Idade, Telefone);
Regras de Negócio:
[] Não pode ser criado duas contas com o mesmo email.
[] Não pode ser criado duas contas com o mesmo CPF.
[x] Criação de conta com (Nome, CNPJ, Email, Senha, Endereço, Telefone);
Regras de Negócio:
[] Não pode ser criado duas contas com o mesmo email.
[] Não pode ser criado duas contas com o mesmo CNPJ.
[] O usuário deve poder se Autenticar utilizando email e senha;
- A autenticação deve ser feita com Json Web Token (JWT);
Regras de Negócio:
[x] No payload do token deve ser armazenado o ID do usuário;
Requisitos Funcionais:
[] O usuário deve poder atualizar seu perfil Voluntário (Nome, CPF, Email, Senha, Idade, Telefone);
Regras de Negócio:
[x] O usuário não pode alterar seu email para um email ja em uso na aplicação
[x] Para atulizar sua senha, o usuário deve informar a senha antiga;
[x] Para atulizar sua senha, o usuário precisa confirmar a senha;
Requisitos Funcionais:
[] O prestador deve poder listar os seus agendamentos de um dia especifico;
[] O prestador deve poder receber uma notificação sempre que houver um novo agendamento;
[] O prestador deve poder visualizar as notificações não lidas;
Requisitos Não Funcionais:
- Os agendamentos devem ser armazenados em cache.
- As notificações do prestador devem ser armazenadas no MongoDB;
- As notificações do prestador devem ser enviadas em tempo-real utilizando Socket.io;
Regras de Negócio:
[] A notificação deve ter um status de lida ou não-lida para que o prestador possa controlar;
Requisitos Funcionais:
[] O usuário deve poder listar todos os prestadores de serviço cadastrados;
[] O usuário deve poder visualizar os dias de um mês com pelo menos um horário disponível de um prestador;
[] O usuário deve poder visualizar os horários disponíveis de um dia especifico de um prestador;
[] O usuário deve poder realizar um novo agendamento com um prestador;
[] O usuário deve poder listar os agendamentos já marcados;
[] O usuário deve poder cancelar um agendamento marcado.
Requisitos Não Funcionais:
- A listagem de prestadores devem ser armazenadas em cache.
Regras de Negócio:
[] Cada agendamento deve durar 1h exatamente;
[] Os agendamentos devem estar disponíveis entre 8h às 18h sendo o último agendamento iniciado as 17h;
[] O usuário não pode agendar em um horário já ocupado;
[] O usuário não pode agendar em um horário que já passou;
[] O usuário não pode agendar consigo mesmo;
Antes de começar, você vai precisar ter instalado o Git em sua máquina. Além disto é bom ter um editor para trabalhar com o código como [VSCode][vscode]
# Clone este repositório
$ git clone https://github.com/patrickcordeiroestudos/social-dev.git
# Acesse a pasta do projeto no seu terminal/cmd
$ cd social-dev
# Instale as dependências
$ yarn
# Execute a aplicação em modo de desenvolvimento
$ yarn start
# A aplicação será aberta na porta:3000 - acesse http://localhost:3000
- Faça um fork do projeto.
- Crie uma nova branch com as suas alterações:
git checkout -b my-feature
- Salve as alterações e crie uma mensagem de commit contando o que você fez:
git commit -m "feature: My new feature"
- Envie as suas alterações:
git push origin my-feature
Caso tenha alguma dúvida confira este guia de como contribuir no GitHub
Este projeto esta sob a licença MIT.
Feito com ❤️ por Patrick Cordeiro 👋🏽 Entre em contato!
Feito com ❤️ por Antônio Pedro 👋🏽 Entre em contato!
Feito com ❤️ por Clayson Roberto 👋🏽 Entre em contato!
Feito com ❤️ por Emerson Gonçalves 👋🏽 Entre em contato!
Feito com ❤️ por Katya Keila 👋🏽 Entre em contato!
Feito com ❤️ por Neto Calegari 👋🏽 Entre em contato!
Projeto desenvolvido em grupo durante o curso de Desenvolvimento FullStack oferecido pela Kenzie Academy Brasil. A Kenzie é uma escola de programação com um ensino de qualidade que capacita seus aluno para se tornarem desenvolvedores FullStack em 12 meses!