Skip to content

Instantly share code, notes, and snippets.

@bastienapp
bastienapp / spring-whereismyband.md
Last active June 28, 2023 10:17
Where is my band?

Le site Where is My Band s'adresse à deux profils :

  • des musiciens qui s'inscrivent pour rechercher de groupes
  • des groupes qui s'inscrivent pour poster des annonces de recherche de musiciens

Un musicien devra créer un compte avec les informations suivantes :

  • un email (unique)
  • un mot de passe
  • sa ville

Le cabinet vétérinaire "Mille pattes" souhaite créer un prototype d'API qui lui permettrait d'accéder à différentes données :

  • la liste des membres du cabinet vétérinaire, avec : leurs nom, prénom, date de naissance, poste, date d'embauche
  • la liste des animaux, avec : leurs nom, date de naissance, race, description de son état, les nom et prénom du propriétaire, le numéro du propriétaire
  • la liste des médicaments, avec : leurs nom, marque, prix unitaire hors taxes, quantité en stock​

Dans un premier temps, réfléchissez aux différentes entités qu'il faudra créer, et modélisez-les à l'aide d'un MCD.

Pour simplifier cet exercice, il n'y aura pas d'association à créer entre les entités.

import org.springframework.beans.FatalBeanException;
import org.springframework.util.Assert;
import java.beans.PropertyDescriptor;
import java.lang.reflect.Method;
import java.lang.reflect.Modifier;
public final class BeanUtils
extends org.springframework.beans.BeanUtils {
package com.example.wildmovies.entity;
import org.springframework.beans.factory.annotation.Value;
import java.util.List;
import java.util.stream.Collectors;
public interface UserProjection {
static List<String> getMovieComments(List<Movie> movies) {
@bastienapp
bastienapp / Dockerfile
Last active July 26, 2023 17:23
Docker deployment: Angular
# Dockerfile frontend
# build environment
FROM node:lts-slim as build
WORKDIR /build
COPY . .
ENV PATH ./node_modules/.bin:$PATH
RUN npm ci
RUN ng build --configuration production --output-path=dist
# production environment
@bastienapp
bastienapp / Dockerfile
Last active July 31, 2023 13:12
Docker deployment: Spring
# Dockerfile Spring
# build environment
FROM openjdk:17-jdk-slim as build
WORKDIR /build/
COPY . .
RUN ./mvnw -Dmaven.test.skip clean package
ENV PORT 8080
#uncomment or add needed env variables
#ARG SPRING_DATASOURCE_URL=${SPRING_DATASOURCE_URL}
@bastienapp
bastienapp / Dockerfile
Last active July 26, 2023 12:37
Docker deployment: MySQL
FROM mysql:8
ENV MYSQL_ROOT_PASSWORD your_password_here
ENV TZ 'Europe/Paris'
ENV LANG C.UTF-8
#You can uncomment the next line and create a schema.sql script, launched on startup
#ADD schema.sql /docker-entrypoint-initdb.d
CMD ["--character-set-server=utf8mb4", "--collation-server=utf8mb4_unicode_ci", "--default-authentication-plugin=mysql_native_password"]
VOLUME /var/lib/mysql
EXPOSE 3306

Francky Vincent, le restaurant

Vous avez été contacté par Francky Vincent, star de la chanson. Ce dernier souhaite créer une application qui lui permettrait d'automatiser le passage de commandes de son nouveau restaurant.

​En effet, Francky Vincent avait déjà ouvert un restaurant par le passé, mais a eu une mauvaise expérience avec son personnel. Après plusieurs années à travailler sur une solution, il a enfin eu une idée de génie : il souhaite tout automatiser, du passage de la commande jusqu'à la préparation des plats. Ainsi, plus de problèmes avec le personnel !

La première étape de la création de ce restaurant nouvelle génération réside dans le passage des commandes sur tablette tactile : il vous a donc embauché pour réaliser un prototype d'API (la partie frontend de l'application ne sera pas réalisée dans ce brief).

Les spécifications

@bastienapp
bastienapp / todo_list_javascript.md
Last active October 5, 2023 12:01
Créer une liste de choses à faire en JavaScript

Créer une liste de choses à faire en JavaScript

Votre mission est de créer un site permettant d'administrer une liste de "choses à faire" (todo list).

Voici un exemple de site : https://my-todo-mr-ayush25.vercel.app/

Attention, il n'est pas nécessaire de faire la même chose, ce site est partagé afin que vous ayez un exemple de résultat attendu !

Les "choses à faire" seront représentées par un tableau d'objets, de la forme suivante :