Git Product home page Git Product logo

popcorn-machine's Introduction

POPCORN 🍿

All Contributors

Popcorn est une plateforme open source et (vraiment) sans frais ni commission qui aide les développeur-e-s freelance de Nantes à trouver des clients et des missions : Voir le site. C'est aussi un réseau et un tchat privé où l'on s'échange des plans tafs et où l'on s'entraide sur nos problématiques communes.

Les objectifs de Popcorn pour les développeurs freelances :

  • 📈 Nous aider à trouver des affaires à Nantes, sans commission ni intermédiaire
  • 📗 Open source : on maîtrise les fonctionnalités du site tel que les résultats de recherche, l'ordre d'apparition des profils, les informations affichées par nos profils etc.
  • 💬 Faire circuler les tuyaux boulot entre freelances via le tchat privé. (accessible uniquement en cas d'inscription sur le site vitrine)
  • 🌟 Apparaitre sur la première page de google sur les mots clefs de type "développeur freelance Nantes".
  • 💪 Proposer une alternative gratuite aux market places de freelances centralisées
  • 🛡️ Résilience: on renforce les liens du tissu économique local et on s'entre-aide sur nos problématiques communes.

Nous rencontrer

Nos RDV sont annoncés ici: https://www.meetup.com/fr-FR/meetup-group-tCnaDLLH/

Ces évenements sont l'occasion pour ses membres de se rencontrer, boire des bières, réseauter, échanger des tuyaux boulots. Quand on a déjà rencontré ou discuté avec quelqu'un, on est plus apte à lui confier des plans travails ou à faire équipe avec lui car ça crée de la confiance! pensez-y ^^

Créer son profil

  • Fork ce dépôt
  • Ajoute ta fiche dans le dossier content/persons en prenant comme exemple le fichier _exemple.md. Le nom de ton fichier sera utilisé pour créer l'url de ton profil. Attention à ne pas laisser l'underscore _ au début du nom du fichier, sinon ton profil sera désactivé par défaut ! Un doute sur la syntaxe yaml de ton profil ? Tu peux copier-coller ton profil ici pour vérifier que c'est ok: http://www.yamllint.com/
  • Ajoute ta photo dans le dossier /static/media/photos : la photo doit faire 100ko maximum ⚠️.
  • Fais une pull request avec pour titre Nouveau profil : {{ton prénom}}
  • Bienvenue sur Popcorn ! ✨ Tu recevras également un mail pour t'inviter sur le tchat de Popcorn, qui est ze place to be pour trouver des plans tafs à Nantes.

Pour soumettre une suggestion, signaler un bug, demander de l'aide, tu peux aussi tout simplement ouvrir une issue sur ce repo

PHILOSOPHIE TECHNIQUE : 0 MAINTENANCE, 0 FRAIS, SIMPLE ET EFFICACE

Le mot "Popcorn" a été notamment choisi pour évoquer une grande légèreté. Son mantra technique pourrait être:

"Dis moi ce dont tu as besoin, je te dirai comment t'en passer."

L'idée expérimentée par Popcorn est d'avoir un site aussi léger techniquement que possible, sans serveur et base de données afin qu'il ne requiert quasiment aucune maintenance et intervention de notre part ni aucun frais, parce que :

  • On est déjà tous "sous l'eau", ce site ne doit pas être une charge de travail supplémentaire.
  • On ne veut pas que le site reste 48 heures en rade parce qu'il ya un truc qui déconne et que tout le monde est trop occupé pour intervenir dessus.
  • On ne veut pas qu'au fil du temps une personne devienne "responsable" du site, qu'elle soit la seule à piger comment tout fonctionne et qu'elle parte à Barcelone ou quitte Popcorn en laissant aux autres un truc compliqué qu'ils et elles ne maitrisent pas
  • On veut bien être hébergé pour 0 euros chez Github ^^
  • On veut bien un site qui soit capable de supporter un fort pic de charge sans broncher : évitons le cas du site qui tombe pile au moment où un article de presse le mentionne 😅
  • On veut bien un moteur de recherche super-rapide et un site qui s'affiche super vite
  • On veut bien que des gens puissent tout simplement forker le repo de démarrage pour créer leur propre annuaire 💚

FAQ

Quelle est la différence avec des plateformes comme Malt ou Comet ?

  • Popcorn est une association à but non-lucratif et ne prélève pas de commission.
  • Popcorn est réservé aux développeur·e·s de la région nantaise.
  • Popcorn est développé et maintenu par les développeur(e)s freelances eux-mêmes.
  • Popcorn n'est pas un intermédiaire ou une entreprise: les clients entrent directement en contact avec les freelances. Popcorn ne joue aucun rôle dans les échanges qui suivent ensuite entre les deux parties.

Documentation technique

Il s'agit d'un site généré statiquement par un script Node.js à partir de fichiers markdowns.

Installation

cloner ce dépôt puis

npm install

Générer la version statique du site finale (version de production)

npm run build

Générer la version statique du site pour le dev (plus rapide car pas d'optim des images)

npm run dev

le dossier _site contient le code html final:

npx serve _site

Déployer

Le déploiement du site est déclenché automatiquement par les github actions lors d'un merge sur la branche master. Les changements peuvent donc prendre quelques minutes avant d'être visible en production.

Contributors ✨

Thanks goes to these wonderful people (emoji key):


Adrien Pessu

💻 💵 👀

Gwenael Pluchon

💻 📋

Alvin Berthelot

💵 🤔 💻

guillaume charbonnier

💵 🤔

Aurélien Laumière

💻

Fabien JUIF

💻 🤔

Anselme Chorein

💵 💻

Bastien THOMAS

💵 📋

Jocelyn Griselle

💵 💻

Antoine Nguyen

💻

Yoann Chocteau

📋

Agnès Maury

💻

CPdA

📋

This project follows the all-contributors specification. Contributions of any kind welcome!

popcorn-machine's People

Contributors

alaumiere avatar bastien-wink avatar boillodmanuel avatar caliendojulien avatar cedricss avatar daisiez avatar eregnier avatar fabienbranchel avatar fabienjuif avatar gozoo avatar gurvanhenry avatar hadrienpierart avatar hellodeloo avatar hnarjis avatar hugsdaniel avatar hydrog3n avatar jeromedumas avatar jocelyngriselle avatar jonathangerbaud avatar matthieuscarset avatar maximevaydie avatar nrifki avatar psam44 avatar rap2hpoutre avatar robincaroff avatar teraglehn avatar thomasg77 avatar unplugandplay avatar yann-yinn avatar yoann-tyt avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

popcorn-machine's Issues

Expliquer comment créer son propre Popcorn

Il n'y a pas d'explication là dessus. Il y a plusieurs solutions, par ordre de rapidité :

  • Télécharger / Forker directement le Popcorn Nantes, en indiquant de virer les profils et images utilisateurs, et en indiquant de modifier le popcorn.config.js
  • Mettre des instructions détaillées dans le README de popcorn-machine pour le faire from scratch depuis "popcorn-machine"
  • Créer un repo "starter par défaut", en faisant bien attention à le maintenir à jour
  • Créer une commande npx-create-popcorn qui s'appuiera sur le repo ci-dessus

Dans tous les cas indiquer que je peux aider sur Slack.
Mettre un lien pertinent vers la combinaison github.io + travis

Le bouton "contact" sur une page profil peut donner l'impression que cela permet de contacter le développeur. Alors qu'en fait non.

Le formulaire de contact a été crée à la base uniquement pour du feedback en cas de bug ( ou de suggestions d'amélioration) d'un visiteur.

  1. Le nommage prête à confusion
  2. Sa présence sur une page profil donne l'impression que le formulaire va envoyer un mail à l'utilisateur alors que non, ça l'envoie sur le slack général.

Deux solutions: le supprimer purement et simplement car il semble pas indispensable. Ou le supprimer quand on se trouve sur une page profil.

Connect to gravatar

Right now this is not possible to use a gravatar email.
What I propose is to add a new field in the person.md which could be gravatar: <true|false|false>

  • If gravatar is set to true, then we use the user email
  • If gravatar is set to a string, we use this string as the gravatar email
  • If gravatar is set to false (or empty), we don't use gravatar but the image field instead

What is your though @yann-yinn ?
Can I assign this issue to me?

Image annuaire

Bonjour,
Je viens de créer Popcorn Quimper et je souhaiterais l'ajouter dans l'annuaire.
Je ne vois pas où mettre l'image ?
Merci.
Jean-Philippe

SEO : créer une page par tag sur le site ?

Faire une page par compétence pour le référencement ? Pratique aussi pour partager un lien sur une compétence donnée

  • popcorn-nantes.github.io/tag/vue.js
  • popcorn-nantes.github.io/tag/java
  • etc

Pouvoir sélectionner plusieurs profils pour générer automatiquement un "mailto:" à tous les développeurs sélectionnés ?

Le problème :
A l'heure actuelle, un client ne sait pas quel développeur freelance est disponible ou pas. Il peut donc potentiellement d'abord vouloir envoyer un mail commun pour tous les profils qui correspondent à ses critères, afin d'ensuite pouvoir échanger et mieux se concentrer sur les profils qui sont actuellement en recherche pour de vrai.

A ce jour, si un client veut envoyer un mail à tous les développeurs React, par exemple, il doit aller récupérer tous les adresses mails une par une, en cliquant sur chaque profil puis sur chaque bouton contact. ( ce qui est largement faisable mais peut être frustrant ou peut être un frein à l'utilisation de l'annuaire)

La solution :

Est ce qu'il serait intéressant d'avoir la possibilité de simplement cliquer sur petit bouton du profil pour "ajouter aux destinataires d'un email" ou "ajouter le contact". Un peu comme un petit panier en haut du site qui permet facilement de copir-coller les adresses pour envoyer le mail, ou même un simple mailto:xxx, yyy, zzz

Le plus important :

Je ne sais pas si c'est indispensable, c'est aux utilisateurs du site de trancher sur cela, il faudrait des retours utilisateurs et utilisatrices là-dessus ...

Nuxt fatal error

Vu en essayant de faire npm run dev et npm run generate :

 ✖ Nuxt Fatal Error                                                                    │
   │                                                                                         │
   │   Error: Cannot find module 'undefined/popcorn.config'                                  │
   │   Require stack:                                                                        │
   │   - ...\popcorn-nantes\node_modules\popcorn-machine\popcorn.config.js   │
   │   - ...\popcorn-nantes\node_modules\popcorn-machine\nuxt.config.js      │
   │   - ...\popcorn-nantes\node_modules\@nuxt\cli\dist\cli-command.js       │
   │   - ...\popcorn-nantes\node_modules\@nuxt\cli\dist\cli.js               │
   │   - ...\popcorn-nantes\node_modules\popcorn-machine\cli.js

Je suis sur un environnement comme suit :

  • Windows 10 x64
  • node v10.16.3
  • npm v3.10.5

Je ne connais vraiment pas Nuxt, alors je n'ai pas d'idée du tout pour contourner le problème :}

Merci !

Amélioration du cli de popcorn

Pour éviter un freeze lors du npm run generate, il y a un truc plutôt hacky dans le fichier cli.js qui force le process à se terminer en cas de succès. Essayer de déterminer pourquoi le process ne se termine pas seul comme il le fait sur un nuxt normal...

cli
  .run()
  .catch(error => {
    require('consola').fatal(error)
    process.exit(2)
  })
  .then(r => {
    if (process.argv[2]) {
      if (process.argv[2] === 'generate') {
        console.log('📚 La génération des pages est terminée !')
      }
      process.exit(0)
    }
  })

freeze du npm run generate

sans doute une promesse qui n'est pas retournée quelque part, peut être au niveau de la génération des routes par nuxt-gustave ou dans un hook ?

Changer l'ordre des profils de manière plus équitable et moins aléatoire

Aujourd'hui, à chaque déploiement, les profils sont mis dans un ordre aléatoire. Un cron redéploie le site tous les 24h pour modifier l'ordre tous les jours ( il peut y avoir des déploiements intermédiaires en cas de PR)

Le hasard étant ce qu'il est, un profil peut se retrouver plusieurs fois de suite en haut de page tandis que d'autres, moins chanceux, apparaitront peu ou pas pendant un (très) long moment en premier(e). ( il y a une quarantaine de profils à ce jour sur le site)

Parmi les possibilités :

  • Changer l'ordre aléatoire beaucoup plus souvent ( toutes les heures ?)
  • remplacer l'aléatoire par un cycle qui fait que tous les profils passent nécessairement en haut de l'affiche dans la semaine ( ou plusieurs fois par semaine).

Problème : Travis permet de faire tourner un cron tous les 24heures, mais c'est sa fréquence maximale...

Pouvoir indiquer les compétences spécialisées / avec expertise

Le problème

En regardant les cartes d'un profil, sil il y a beaucoup de compétences, on peut avoir du mal à distinguer le coeur de métier de certaine-s : il faut consulter la description (si elle est assez complète) pour mieux cerner que untel est au final plutôt spécialisé Drupal que Symfony, ou l'inverse quand il y à la fois le tag "Drupal" et "Symfony"

Proposition

Inciter à mettre en avant certaines compétences clefs parmi la liste de tags de compétences. Ils seraient mis dans une couleur plus visibles que les autres en ajoutant le tag "spécialiste" par exemple. Ca n'appaitrait pas dans le tag lui même.

capture d ecran 2019-03-07 a 09 17 06

Comment

Pour pas casser l'existant

technologies:
  - Vue:Spécialiste
  - Node
  - GraphQL

Ajouter une page "Annuaire des popcorns"

En faisant Popcorn-Morbihan, j'ai ajouté la liste des popcorn de France en bas de la page à propos. C'est intéressant pour les clients entre deux popcorns ou acceptant le remote par exemple.
Avec une page d'annuaire des popcorns intégré la popcorn machine, il suffirait à chaque popcorn de faire sa PR pour que tous les popcorn aient une liste à jour, qu'en pensez-vous ?

[meta] ajouter Cypress tests end to end manquant

  • carte de profil sur la liste des profils
  • page de profil
  • test des balises metatags pour partage sur réseaux sociaux (#35)
  • vérifier que les process.env soit correctement définis (#41)
  • formulaire de contact : #40
  • bouton "proposer un projet"
  • moteur de recherche sur technologies et domaines métiers
  • persistence la recherche quand on change de page et qu'on revient à la page d'accueil

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.