Esse é um do projetos propostos durante a quarta edição da Next Level Week. A proposta do RocketPay é desenvolver um meio de pagamento semelhante ao encontrado na plataforma PicPay, treinando conceitos de programação funcional, com a linguagem Elixir e com o framework web Phoenix
Certifique-se de ter instalado o Elixir e o Phoenix framework em sua máquina (acesse os links acima). Além disso, é preciso ter um banco postgres ativo. Você pode instalá-lo diretamente em sua máquina ou utilizar uma imagem docker.
Com o banco de dados rodando, configure suas credenciais nos arquivos config/dev.esx config/test.esx
Para clonar o projeto para a sua máquina
git clone https://github.com/lucascprazeres/rocketpay
cd rocketpay
Para iniciar o seu servidor Phoenix:
# instale as dependências
mix deps.get
# Crie e migre o banco de dados
mix ecto.setup
# Rode o servidor
mix phx.server
Você está pronto para usar a aplicação! 🥳
A url base para acessar a API é localhost:4000
.
A baseURL para as requisições em modo de desenvolvimento é http://localhost:4000/api
Corpo da requisição (JSON)
{
"name": "john doe",
"email": "johndoe@email.com",
"nickname": "jdoe",
"password": "password",
"age": 19
}
Resposta (JSON)
{
"message": "User created",
"user": {
"account": {
"balance": "0.00",
"id": "2ec3cab8-a789-4ae8-ac02-15f93b1b8391"
},
"id": "14f6d5cc-36ce-45aa-ba6f-570f0ddf7498",
"name": "john doe",
"nickname": "jdoe"
}
}
Corpo da requisição (JSON)
{
"value": "100"
}
Resposta (JSON)
{
"account": {
"balance": "100.00",
"id": "2ec3cab8-a789-4ae8-ac02-15f93b1b8391"
},
"message": "Balance changed sucessfuly"
}
Corpo da requisição (JSON)
{
"value": "100"
}
Resposta (JSON)
{
"account": {
"balance": "0.00",
"id": "2ec3cab8-a789-4ae8-ac02-15f93b1b8391"
},
"message": "Balance changed sucessfuly"
}
Corpo da requisição (JSON)
{
"from": "withdraw_account_id",
"to": "deposit_account_id",
"value": "50.00"
}
Resposta (JSON)
{
"message": "Transaction done sucessfuly",
"transaction": {
"from_account": {
"balance": "350.00",
"id": "withdraw_account_id"
},
"to_account": {
"balance": "199.00",
"id": "deposit_account_id"
}
}
}
Esse projeto se encontra sob a licença MIT. Para mais informações, acesse o arquivo LICENSE.