npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

ynov-cicd

v0.1.7

Published

ynov-cicd

Readme

Ynov CICD

Lancer le projet

pnpm install
pnpm run dev

L'application tourne ensuite en local sur le port affiché par Vite, généralement http://localhost:3000.

Commandes utiles

pnpm run test      # lance les tests
pnpm run coverage  # lance les tests avec couverture
pnpm run cy:run    # lance les tests end-to-end Cypress
pnpm run build     # build de production
pnpm run lint      # vérification ESLint

La documentation est aussi accessible depuis l'application via le lien Documentation sur la page d'accueil.

Structure rapide

  • src/lib/validators.ts : fonctions de validation.
  • src/components/RegistrationForm.tsx : formulaire d'inscription.
  • src/lib/registrations-storage.ts : sauvegarde et lecture du local storage.
  • src/routes/documentation.tsx : documentation intégrée à l'app.

Énoncé

Dans un framework js, faites un petit projet permettant à un utilisateur de s’enregistrer sur un formulaire avec nom, prénom, mail, date de naissance, ville, code postal et un bouton de sauvegarde.

Le bouton est non clickable tant que les champs précédents ne sont pas remplis.

Si les champs sont valides, on sauvegarde dans le local storage et on affiche un toaster de succès, puis on vide les champs.

Si les champs ne sont pas valides, on affiche un toaster d’erreur, et on écrit un message d’erreur sous chaque champ en erreur, en rouge

Les règles de validation :

La date de naissance bloque les -18 ans,

Le code postal doit être au format français,

Les noms, prénoms doivent être valides (sans caractère spéciaux et chiffres mais accepter les accents, tréma, tiret, etc),

L’email doit être valide

Les fonctions de vérification sont dans un fichier js à part qui sera totalement testé. Les composants également. La couverture attendue est de 100% (index.js et reportWebVitals exclus), exportée dans code coverage avec tous les tests unitaires et d’intégrations passant avec succès. Une documentation complète à fournir. La fiabilité des tests sera prise en compte.

Les tests à avoir au minimum :

Le calcul de l'âge

L'âge > 18 ans

Le format du code postal

Le format des noms et prénoms (avec différents cas particulier)

Le format de l’email

La désactivation du bouton si les champs ne sont pas remplis

La sauvegarde dans le local storage et le toaster de succès, avec champs vidés

Le toaster d’erreur et les erreurs correspondantes en rouge

Projet à mettre sur github, en ajoutant au gitignore les node_modules, le dossier de couverture et le dossier de docs.

Le projet doit être déployé avec github action sur github pages, les tests UT et IT doivent être en succès avant le déploiement sur npm et sur github pages.

Votre historique de package npm et de commit doit justifier d'avoir publié automatiquement une version patch et une minor. Potentiellement une major si vous en aviez besoin

Le rendu attendue est un fichier txt avec :

lien du repository github public

lien du projet déployé sur github pages

lien vers le package npm public

lien vers le rapport de couverture codecov public

Notation individuelle :

Tests UT (qualité, fiabilité, couverture) / 5

Tests IT (qualité, fiabilité, couverture) / 5

Documentation avec readme, accessible depuis l’app lancé, et couverture sur codecov / 5

Workflow github fonctionnel avec testing, déploiement sur npm et sur github pages / 5