Chelles Athlétisme
Le projet Chelles Athlétisme est un projet ou le but est de créer un site web pour un club d'athlétisme de la ville de Chelles. Ce site web permettra de présenter le club, les différentes disciplines pratiquées, les horaires d'entraînement, les événements à venir, les résultats des compétitions, etc.
Pour ce projet, j'ai utilisé pour la première fois le framework Nuxt.js un framework basé sur Vue.js en SSR (Server Side Rendering). J'ai également utilisé le framework Tailwind CSS pour styliser mon site, en combo avec du SCSS pour les éléments plus complexes. J'ai également utilisé pour la première fois du Typescript pour faire des scripts coté serveur.
Code du script coté serveur
import {serverSupabaseClient} from '#supabase/server'
export default eventHandler(async (event) => {
let body = await readBody(event);
if(!body) {
throw createError({
message: 'Invalid arguments',
statusCode: 404
})
}
if(!body.name) {
throw createError({
message: "A argument is requiered",
statusCode: 401
})
}
if(body.name === 'all') {
const client = await serverSupabaseClient(event)
const {data: links, error} = await client.from('club').select('*').order('position')
return {data: links, error}
} else {
const client = await serverSupabaseClient(event)
const {data: links, error} = await client.from('club').select('*').eq('link', '/club/'+body.name)
console.log(links)
return {data: links, error}
}
})Pour ce qui est coté serveur je suis parti sur l'outil Supabase qui est une alternative à Firebase. Il permet de gérer une base de données PostgreSQL et de gérer les utilisateurs de manière simple.