# Roadmap Second Half A3
## Docker
### What you need to know
#### Conceitos
- Image - Snapshot do software com dependencias, pode ser executada em muitos containers
- Container - O Software a correr no mundo real. Executa uma imagem e corre isolado de outros containers e da máquina que dá host.
- DockerFile - Script que especifica para o Docker como construir uma imagem
- Docker-Compose - Script que constroi imagens e cria containers
#### Comandos
- `docker build -t $DOCKER_USERNAME/$IMAGE_NAME .` - Constroi uma imagem a partir de um DockerFile
- `-t $DOCKER_USERNAME/$IMAGE_NAME` atribui um nome á imagem
- `.` Diretório onde se encontra a imagem
- `docker run -it -p 8000:80 -v $PWD/html:/var/www/html <DOCKER_USERNAME>/<IMAGE NAME>` - Cria um container e executa a imagem nesse container
- `-it` not very important...Means interactive ou seja basicamente em vez de o container ficar a correr em background fica sempre ali e portanto basta ctrl+c para matá-lo
- `-p 8000:80` associa a porta 80 do container à porta 8000 da máquina
- `-v $PWD/html:/var/www/html` Cria um volume para associar um diretório da máquina a um diretório no container. Dependendo do OS a comando `$PWD` será diferente ([reference](https://stackoverflow.com/questions/41485217/mount-current-directory-as-a-volume-in-docker-on-windows-10))
- `<DOCKER_USERNAME>/<IMAGE NAME>` Último argumento é o nome da Imagem
- `docker login` - Dá login numa conta de Docker Hub. Necessário Username e Password
- `docker push $DOCKER_USERNAME/$IMAGE_NAME` publica Uma imagem para o DockerHub, na conta em que está logado
- `$DOCKER_USERNAME/$IMAGE_NAME` imagem que dará push
- `docker-compose up` - Único comando necessário, isto dá build e run dos containers para dentro de um serviço e fica tudo nice
### Conclusão
Só é necessário fazer `docker-compose up` e fica tudo disponível em `localhost:8000`. Se quiserem saber o que faz o `DockerFile` e/ou o `docker-compose.yml` é dar uma olhada nos docs.
## HTML
Mais vale fazer bem de inicio do que fazer merda e corrigir depois.
Antes de começar a fazer qualquer página tem de se saber o que se pode fazer, o que se vai fazer, e como o fazer.
Já sabemos o que vamos fazer (FreeHand). O que podemos fazer e como, não sabemos.
O primeiro passo é : https://getbootstrap.com/docs/5.0/getting-started/introduction/
==Não ler na diagonal.==
### Módulos e páginas
- Admin
- [x] [name=Ricardo] Supplier Request | List
- [x] [name=Ricardo] Supplier Request | Accept/Deny
- [x] [name=Ricardo] View Products
- [x] [name=Ricardo] View Users
- [x] [name=Ricardo] View User | Delete
- Client Profile
- [x] [name=André] Perfil Inicial | Purchase History
- [x] [name=André] Favorites
- [x] [name=André] Periodic Buys
- [x] [name=André] Edit Profile
- Supplier Profile
- [x] [name=André] Profile | Products
- [ ] [name=Luís] Create Product
- [x] [name=Zé] All Products
- [x] [name=Zé] Bundles | Cupons
- [ ] [name=Luís] Create/Edit Bundle
- [ ] [name=Luís] Create/Edit Cupon
- Register Login
- [x] [name=André] Login
- [x] [name=André] Register Client
- [x] [name=André] Register Supplier
- CheckOut
- [x] [name=Zé] Cart Information
- [x] [name=Zé] Shipping | Payment
- [x] [name=Zé] Periodic Buys
- [x] [name=Zé] Payment Information
- [x] [name=Zé] Pop Up Order Accepted
- Misc
- [x] [name=Ricardo] HomePage
- [x] [name=Ricardo] About Us
- [ ] [name=Luís] Search
- [ ] [name=Luís] Products List | Filters
- [ ] [name=Luís] Product Detail
- [ ] [name=Luís] Supplier Detail
Ricardo - 7
Luís - 7
André - 8
Zé - 7
| Dias | Esperado cumulativo (Feitas no dia) |
|---------------|-------------------------------------|
| Segunda/Terça | Docker e Bootstrap |
| Quarta | 1 (1) |
| Quinta | 2 (1) |
| Sexta | 3 (1) |
| Sábado | 5 (2) |
| Domingo | 7 (2) + Começar a juntar páginas |
| Segunda | Acabar de juntar páginas e ver US |
| Terça | Entrega |