Exercicios do processo trainee da Struct, empresa junior de Engenharia de Computacao da Universidade de Brasilia (ativa desde 2014). O repositorio reune as 8 listas semanais do processo seletivo 2022, cada uma na sua propria pasta, cobrindo desde programacao basica em Ruby ate desenvolvimento web com Rails e React.
| Nome | GitHub |
|---|---|
| Gustavo Vieira de Araujo | @GustavoVieiraDeAraujo |
| Tecnologia | Onde e usada |
|---|---|
| Ruby | Lista 1 (exercicios) e Listas 4/5 (Rails) |
| Ruby on Rails 6 | Listas 4 e 5 (API KayranRestaurant) |
| PostgreSQL | Listas 4 e 5 (banco de dados) |
| Devise | Lista 5 (autenticacao de usuarios) |
| DBML | Lista 3 (modelagem de banco) |
| HTML/CSS | Lista 7 (pagina estatica com efeito neon) |
| React 18 (Create React App) | Lista 8 (interface de loja de jogos) |
Cada lista fica em sua propria pasta na raiz do repositorio:
| Pasta | Tema | Conteudo |
|---|---|---|
Lista-1/ |
Programacao basica em Ruby | 6 exercicios (.rb) + enunciado (PDF) |
Lista-2/ |
Exercicio teorico | 13 screenshots de um quiz sobre estrutura de arquivos Rails |
Lista-3/ |
Modelagem de banco de dados | 3 schemas DBML + enunciado |
Lista-4/ |
Rails API (KayranRestaurant 1.0) | CRUD de categorias e produtos |
Lista-5/ |
Rails API (KayranRestaurant 1.1) | Usuarios, autenticacao Devise, produtos favoritos, serializers |
Lista-6/ |
Exercicio teorico | 6 screenshots de um quiz sobre tags HTML semanticas |
Lista-7/ |
HTML/CSS | Pagina "Membros Struct" com efeito neon + link do prototipo Figma |
Lista-8/ |
React | Interface de loja de jogos (categorias, lista de jogos, jogo selecionado) |
cd "Lista-1"
ruby "Questao 1.rb"
ruby "Questao 2.rb"
# ... ate Questao 6.rbcd "Lista-4/KayranRestaurant - 1.0" # ou Lista-5/KayranRestaurant - 1.1
bundle install
rails db:create db:migrate db:seed
rails scd "Lista-8/Lista 8"
yarn install
yarn start| Questao | Tema | Descricao |
|---|---|---|
| 1 | Calculadora de imposto de renda | Calcula IR com base em faixas salariais |
| 2 | Maior primo menor ou igual a N | Encontra o maior numero primo <= entrada |
| 3 | Soma do triangulo de Pascal | Calcula soma de N linhas usando serie geometrica |
| 4 | Estatisticas de array | Min, max, mediana com posicoes e ordenacao |
| 5 | Cardapio aleatorio | Seleciona entrada, principal e sobremesa de um hash |
| 6 | Sequencia e fatoriais de impares | Gera sequencia e calcula fatoriais dos impares |
Tres schemas em DBML (compativeis com dbdiagram.io): Exercicio 1, Exercicio 2 e Exercicio Bonus, cada um modelando um dominio diferente com tabelas, chaves e relacionamentos. Exercicio 1 e Exercicio 2 validam limpo com dbml2sql; Exercicio Bonus mistura um texto de contexto com o codigo no mesmo arquivo, entao so o trecho de codigo (a partir de Table Instructor) valida.
API para um restaurante fictício, evoluida entre as duas listas:
Lista 4 (KayranRestaurant - 1.0) |
Lista 5 (KayranRestaurant - 1.1) |
|
|---|---|---|
| Modelos | Category, Product |
Category, Product, User, UserFavoriteProduct |
| Controllers | categories, products | categories, products, users, user_favorite_products |
| Autenticacao | Nenhuma (index/show publicos, create/update/delete abertos) | Devise + token: cadastro (POST users/create), login (POST users/login) e logout (DELETE users/logout); index/show de categories e products publicos, escrita exige token |
| Favoritos | Nenhum | POST user_favorite_products/create / DELETE user_favorite_products/delete/:product_id, associados ao usuario autenticado |
| Serializers | Nenhum | Sim (category, product, user) |
| Testes | Minitest, mas so stubs vazios (0 asserções reais) | Minitest, mesma situação (0 asserções reais) |
Pagina estatica "Membros Struct", com fotos dos membros e efeito hover em neon nos links. Prototipo desenhado no Figma (link em Lista-7/Lista 7/LinkFigma).
Interface de uma loja de jogos, construida com Create React App e styled-components:
| Componente | Responsabilidade |
|---|---|
Header |
Cabecalho da loja |
MainCategorias |
Lista de categorias de jogos |
MainJogos / GamesContainer / Game |
Listagem e card de cada jogo |
Selected Game |
Detalhe do jogo selecionado |
Button, Input |
Componentes de UI reutilizaveis |
Documentacao gerada com auxilio de IA.