Google Summer of Code: informazioni per gli studenti

Vuoi partecipare al programma? Qui di seguito trovi alcune idee

Innanzitutto, benvenuti!

La partecipazione al Google Summer of Code prevede la presentazione di proposte progettuali, da parte degli studenti interessati a partecipare, inerenti i progetti sviluppati dall’organizzazione Developers Italia. Queste proposte verranno valutate sia dagli organizzatori che dai responsabili di Developers Italia per verificarne l’adeguatezza e la fattibilità nel periodo previsto dal programma. Per facilitare questa fase, alcuni sviluppatori e membri della community di Developers Italia hanno messo a disposizione alcune idee consultabili nella tabella sottostante.

Nota bene: a volte le idee presenti in questa lista potrebbero essere vaghe o incomplete. Se vuoi sottomettere una proposta basata su queste idee ti consigliamo di contattare direttamente il responsabile del progetto per conoscerne i dettagli e capire come procedere.

La selezione per l’iniziativa Google Summer of Code è molto competitiva. Normalmente gli studenti accettati hanno studiato a fondo le tecnologie che compongono i progetti presentati e sono stati in contatto frequente con i potenziali mentor. Un semplice copia-incolla di una di queste idee all’interno della candidatura da presentare a GSoC non basta. D’altro canto, la creazione di un’idea da zero senza aver precedentemente contattato i potenziali mentor ha anch’essa scarse possibilità di essere accettata.

Se non ci dovesse essere indicato un contatto specifico per le domande è possibile chiedere direttamente su Slack. Puoi richiedere un accesso qui. Se non sai a chi chiedere non essere timido, il canale #welcome è dedicato proprio a questo! Nella domanda specifica il progetto che ti interessa con eventuali puntatori a risorse.

Idee

Le proposte ben preparate e presentate da studenti volenterosi hanno molte possibilità di essere selezionate. Saranno considerate proposte per tutti i livelli di difficoltà, da semplici a molto complesse. Presentati e ti aiuteremo a costruire una proposta adeguata.

Ricorda che le descrizioni dei progetti che trovi qui sotto sono solo idee iniziali. Per questo motivo saranno da espandere in dettaglio e da personalizzare in base alla tua esperienza e ai tuoi interessi.

Note per la community. Ogni progetto nella lista delle idee deve includere:

  1. un titolo e una descrizione;
  2. una descrizione dettagliata (2-5 frasi);
  3. risultati attesi;
  4. competenze richieste/preferite;
  5. possibile mentor.

E, se possibile, un’indicazione del livello di difficoltà del progetto (facile, media, difficile).

Progetto Breve Descrizione Difficoltà Contatto
Developers Agave CMS
Agave è un CMS open source adatto alla generazione di siti web statici. Il progetto Agave è attualmente attivo e sono già state raggiunte diverse milestone major. Questo progetto GSoC sarà quindi focalizzato sul consolidamento dell'applicativo in modo da renderlo production ready. Le attività saranno di tipo fullstack e varieranno dal consolidamento delle tecnologie di infrastruttura (i.e., preparare il deployment rapido) ad attività legate al templating engine in modo da produrre risultati aderenti alle ultime normative e linee guida di Design.
Mentor: Chiedi su #design-dev nel nostro Slack non appena ti sarai fatto un'idea più chiara sul progetto.
Risultati attesi: Lato infrastruttura i risultati attesi comprendono il raggiungimento di un ambiente docker-based robusto, stabile, testato e production-ready. Per quanto concerne gli aspetti di template il risultato atteso è l'implementazione completa del framework Bootstrap Italia in modo tale da garantire che il sito prodotto da Agave sia pienamente compatibile con le linee guida italiane di Design.
Competenze richieste:
  • React
  • Ruby on Rails
  • Docker e tecnologie CI/CD
Media #design-dev
API Implementazione di una serie di header HTTP di rate-limit all'interno di diversi prodotti software
Lo scopo di questo progetto è di lavorare sui nuovi header HTTP di rate-limit contenuti nell'Internet Draft. In pratica, questa novità dev'essere implementata sotto forma di plugin all'interno di software di rilevanza internazionale quali ad esempio traefik, nginx, envoy-proxy e 3scale. Di conseguenza, sarà anche necessario interagire con altre community già esistenti in modo da assicurarsi che i contributi vengano recepiti correttamente all'interno delle rispettive codebase.
Mentor: Chiedi sul canale #api del nostro slack appena hai un'idea più concreta riguardante il progetto.
Risultati attesi: Plugin funzionanti per traefik, nginx, envoy-proxy etc. che implementano gli header di rate-limit. Inoltre, è necessario fornire un environment funzionante per testare le implementazioni proposte.
Competenze richieste:
  • Golang, JS, Python, Java, C a seconda della piattaforma
  • Basic Linux knowledge
  • Docker e tecnologie di CI/CD
Difficile #api
API Configurazione di alcuni API Gateway
Questo progetto mira ad impostare degli API gateway in grado di supportare un set di caratteristiche chiave per l'interoperabilità quali:
  • esposizione di API tramite specifiche OpenAPI3;
  • ritorno di RateLimit header fields;
  • ritorno di errori in modo conforme all'RFC7807 (Problem Details for HTTP APIs).
Gli studenti studieranno, installeranno e configureranno degli API gateway e reverse proxy come Kong, 3scale, Nginx, WSO2 assicurandosi che le feature sopra elencate siano presenti e funzionanti. Nel caso in cui l'implementazione di tali feature richieda la scrittura di plugin dedicati, filtri o componenti esterni, è necessario che lo studente si interfacci con le community di tali software già esistenti. Per quanto riguarda la parte dedicata al ratelimit, lo studente si dovrà interfacciare con chi seguirà la proposta#2.
Mentor: Chiedi nel canale #api sul nostro slack appena hai un'idea chiara sul progetto.
Risultati attesi: Il risultato atteso è un docker-compose o un helm chart in grado di fornire un setup ridondato di un'infrastruttura gateway per esporre API descritte da una specifica OAS3.
Competenze richieste:
  • Docker e tecnologie CI/CD
  • Protocollo HTTP
  • Python, Java, C a seconda della piattaforma usata
  • Opzionale: Kubernetes
Difficile #api
Design Design system kit per React
Completamento del Design Kit React di Designers Italia tramite l'aggiornamento delle sue dipendenze e l'aggiunta o la correzione di componenti ad oggi mancanti. Inoltre, sarà necessario aggiornare lo Storybook e migliorare la documentazione in modo da rendere l'esperienza più semplice per l'utente. Su un repository separato, dovrà essere implementato un template Gatsby per facilitare l'adozione del kit all'interno delle pubbliche amministrazioni ed aumentarne il riuso.
Mentor: Designers o sviluppatori del team di Designers Italia.
Risultati attesi: Una versione stabile del Design React Kit che contenga la maggior parte dei componenti di Bootstrap Italia e un template Gatsby facile da usare e conforme con le regole sull'accessibilità. Questo progetto può essere usato come solida base di partenza: Competenze richieste:
  • Design systems
  • Javascript/ES/React
  • Conoscenze di base di StorybookJS e GatsbyJS
Media #design-dev
Design Un tema Wordpress per i comuni
Creare un tema Wordpress per i comuni basato sul design system italiano. Il codice sarà costruito basandosi su Bootstrap Italia in modo da garantire l'adesione ai template HTML che sono già forniti da Designers Italia. I content type e la tassonomia dovranno essere consistenti con le linee guida presenti all'interno del documento sull' architettura dell'informazione. La community di Designers Italia ha già creato due temi Wordpress: Nota bene: questi temi sono costruiti per siti pubblici general purpose e potrebbero non essere completamente validati per quanto riguarda l'accessibilità oppure potrebbero necessitare degli aggiornamenti. Potrebbero comunque servire come punto di partenza per il progetto qui descritto.
Mentor: Designers o sviluppatori del team di Designers Italia.
Risultati attesi: Un tema Wordpress funzionante per i comuni basato sul design system italiano e pronto per essere usato da qualsiasi comune nel proprio sito web, arricchito da una documentazione chiara e una licenza open source. Il risultato deve rispettare la qualità del tema Wordpress per le scuole di Designers Italia.
Competenze richieste:
  • Design systems e web development
  • Wordpress plugins e theming best-practices
  • Conoscenza delle architetture dell'informazione
Media #design-cms-themes
Design Un tema Drupal per i comuni
Creare un tema Drupal per i comuni basato sul design system italiano. Il codice sarà costruito basandosi su Bootstrap Italia in modo da garantire l'adesione ai template HTML che sono già forniti da Designers Italia. I content type e la tassonomia dovranno essere consistenti con le linee guida presenti all'interno del documento sull'architettura dell'informazione. Esiste già un tema Drupal per siti web general purpose che può servire come punto di partenza per il tema dei comuni:
Mentor: Designers o sviluppatori del team di Designers Italia.
Risultati attesi: Un tema Wordpress funzionante per i comuni basato sul design system italiano e pronto per essere usato da qualsiasi comune nel proprio sito web, arricchito da una documentazione chiara e una licenza open source. Il risultato deve rispettare la qualità del tema Wordpress per le scuole di Designers Italia. Competenze richieste:
  • Design systems e web development
  • Wordpress plugins e theming best-practices
  • Conoscenza delle architetture dell'informazione
Media #design-cms-themes
Generale La tua idea!!
Qualcosa che ti piacerebbe molto fare!
Hai un'idea brillante da sviluppare insieme a Developers Italia ma che non è presente in questa lista? Nessun problema! Per cortesia, però, facci un favore: mettiti in contatto con un mentor al più presto per assicurarti che il progetto sia realizzabile e compreso nello scopo di Developers Italia. Questo sforzo ci risparmierà molte frustrazioni.
Mentor: Proponi la tua idea e chiedi in Developers Italia se c'è qualcuno interessato per lavorare insieme a te. Se non sai a chi chiedere puoi sempre scrivere su #welcome.
Risultati attesi: Da discutere con il tuo mentor.
Competenze richieste:
  • a te la scelta :-)
Decidi tu #welcome
torna all'inizio dei contenuti