Skip to content

peregrinno/rika-backend

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

8 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Rika App - API de Autenticação

API REST desenvolvida com Ruby/Sinatra para autenticação de usuários utilizando JWT token e PostgreSQL.

Tecnologias Utilizadas

  • Ruby
  • Sinatra (Framework Web)
  • PostgreSQL (Banco de dados)
  • JWT (Autenticação)
  • BCrypt (Criptografia de senhas)
  • ActiveRecord (ORM)

Pré-requisitos

  • Ruby 3.0+
  • PostgreSQL
  • Bundler

Configuração do Projeto

  1. Clone o repositório
git clone <url-do-repositorio>
cd rika-app
  1. Instale as dependências
bundle install
  1. Configure as variáveis de ambiente
cp .env.example .env
  1. Edite o arquivo .env com suas configurações:
# API Configs
API_NAME=Rika App
CORS_URL=http://localhost:3000
TIMEZONE=America/Recife

# Database Configs
DB_ADAPTER=postgresql
DB_HOST=localhost
DB_NAME=rika_db
DB_USERNAME=seu_usuario_postgres
DB_PASSWORD=sua_senha_postgres
DB_PORT=5432

# JWT Config
JWT_SECRET=sua_chave_secreta_jwt
  1. Crie e configure o banco de dados
rake db:create
rake db:migrate

Executando a API

Para iniciar o servidor:

ruby app.rb

Por padrão a API estará disponível em http://localhost:4567

Endpoints

Registro de Usuário

POST /register
Content-Type: application/json

{
    "email": "[email protected]",
    "password": "senha123",
    "name": "Nome Completo",
    "phone": "81999999999"
}

Resposta de sucesso:

{
  "id": 1,
  "email": "[email protected]",
  "name": "Nome Completo",
  "phone": "81999999999"
}

Login

POST /login
Content-Type: application/json

{
    "email": "[email protected]",
    "password": "senha123"
}

Resposta de sucesso:

{
  "token": "eyJhbGciOiJIUzI1NiJ9..."
}

Autenticação

Para rotas protegidas, inclua o token JWT no header:

Authorization: Bearer eyJhbGciOiJIUzI1NiJ9...

O token tem validade de 1 hora.

Estrutura do Projeto

.
├── app.rb                    # Arquivo principal
├── Gemfile                   # Dependências
├── .env                      # Variáveis de ambiente
├── .env.example             # Exemplo de variáveis de ambiente
├── config/
│   └── database.yml         # Configuração do banco
├── controllers/
│   └── auth_controller.rb   # Controller de autenticação
├── models/
│   └── user.rb             # Modelo de usuário
├── middlewares/
│   └── auth_middleware.rb  # Middleware de autenticação
└── db/
    └── migrate/            # Migrações do banco

Desenvolvimento

Criando novas migrações

rake db:create_migration NAME=nome_da_migracao

Revertendo migrações

rake db:rollback STEP=1

Produção

Antes de colocar em produção:

  1. Configure uma chave JWT_SECRET forte
  2. Ajuste as configurações de CORS
  3. Configure as variáveis de ambiente do banco de dados
  4. Use um servidor de produção (ex: Puma)
  5. Configure SSL/TLS

Contribuição

  1. Faça um fork do projeto
  2. Crie sua branch de feature (git checkout -b feature/nova-feature)
  3. Commit suas alterações (git commit -am 'Adiciona nova feature')
  4. Push para a branch (git push origin feature/nova-feature)
  5. Abra um Pull Request

Licença

Este projeto está sob a licença MIT.


About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages