├── 2021 ├── README.md ├── new-database-search-backend.md └── wagtail-live.md ├── 2022 ├── README.md ├── high-contrast-themes.md ├── toolkit-for-streamfield-data-migrations-in-wagtail.md ├── ux-unification.md └── wagtail-editor-guide.md ├── 2023 ├── README.md ├── contributor-guide.md ├── greener-coding-responsive-images.md ├── greener-coding.md ├── organizer-guide.md ├── participants │ ├── Abdul Samad Ansari (Sam) │ │ └── README.md │ ├── Abinash Satapathy │ │ └── README.md │ ├── Ahmed-Hanoon │ │ └── README.md │ ├── Alwin-T-Varghese │ │ └── README.md │ ├── Ayoub Mnafeg │ │ └── README.md │ ├── Bhavya-Soni │ │ └── README.md │ ├── Blessey_Maria_Saju │ │ └── README.md │ ├── Debapriya Jha │ │ └── README.md │ ├── Dharmendra Solanki │ │ └── README.md │ ├── Ezad Zamily │ │ └── README.md │ ├── Krishna-Dhakad │ │ └── Readme.md │ ├── Manish Dhakal │ │ └── README.md │ ├── Mayank_Pandey │ │ └── README.md │ ├── Mehul_Aggarwal │ │ └── README.md │ ├── Nathaniel Soriano │ │ └── README.md │ ├── Nermeen-Wageh │ │ └── README.md │ ├── Piyush Srivastava │ │ └── readme.md │ ├── Pratik Nimje │ │ └── README.md │ ├── README.md │ ├── Ritik Raj │ │ └── README.md │ ├── Rohit-Yadav │ │ └── README.md │ ├── Sudarsan │ │ └── README.md │ ├── Tran-Allen │ │ └── README.md │ ├── Yaseen Wazir │ │ └── README.md │ ├── Yuntao Xie │ │ └── README.md │ ├── adama-boubacar │ │ └── README.md │ ├── ahmed-bedeir │ │ └── README.md │ ├── aman-gupta │ │ └── README.md │ ├── aman_pandey │ │ ├── 2023 - Shortcut.lnk │ │ └── README.md │ ├── amey-shinde │ │ ├── README.md │ │ ├── mysite │ │ │ ├── manage.py │ │ │ ├── mysite │ │ │ │ ├── __init__.py │ │ │ │ ├── asgi.py │ │ │ │ ├── settings.py │ │ │ │ ├── urls.py │ │ │ │ └── wsgi.py │ │ │ └── polls │ │ │ │ ├── __init__.py │ │ │ │ ├── admin.py │ │ │ │ ├── apps.py │ │ │ │ ├── migrations │ │ │ │ ├── 0001_initial.py │ │ │ │ └── __init__.py │ │ │ │ ├── models.py │ │ │ │ ├── static │ │ │ │ └── polls │ │ │ │ │ ├── images │ │ │ │ │ └── background.png │ │ │ │ │ └── style.css │ │ │ │ ├── templates │ │ │ │ ├── admin │ │ │ │ │ └── base_site.html │ │ │ │ └── polls │ │ │ │ │ ├── detail.html │ │ │ │ │ ├── index.html │ │ │ │ │ └── results.html │ │ │ │ ├── tests.py │ │ │ │ ├── urls.py │ │ │ │ └── views.py │ │ └── wagtail_new │ │ │ └── mysite │ │ │ ├── .dockerignore │ │ │ ├── Dockerfile │ │ │ ├── blog │ │ │ ├── __init__.py │ │ │ ├── admin.py │ │ │ ├── apps.py │ │ │ ├── migrations │ │ │ │ ├── 0001_initial.py │ │ │ │ ├── 0002_blogpage.py │ │ │ │ ├── 0003_blogpagegalleryimage.py │ │ │ │ ├── 0004_blogpagetag_blogpage_tags.py │ │ │ │ ├── 0005_blogtagindexpage_blogcategory.py │ │ │ │ └── __init__.py │ │ │ ├── models.py │ │ │ ├── templates │ │ │ │ └── blog │ │ │ │ │ ├── blog_index_page.html │ │ │ │ │ ├── blog_page.html │ │ │ │ │ └── blog_tag_index_page.html │ │ │ ├── tests.py │ │ │ └── views.py │ │ │ ├── home │ │ │ ├── __init__.py │ │ │ ├── migrations │ │ │ │ ├── 0001_initial.py │ │ │ │ ├── 0002_create_homepage.py │ │ │ │ ├── 0003_homepage_body.py │ │ │ │ └── __init__.py │ │ │ ├── models.py │ │ │ ├── static │ │ │ │ └── css │ │ │ │ │ └── welcome_page.css │ │ │ └── templates │ │ │ │ └── home │ │ │ │ ├── home_page.html │ │ │ │ └── welcome_page.html │ │ │ ├── manage.py │ │ │ ├── media │ │ │ ├── images │ │ │ │ ├── V1.2e16d0ba.fill-160x100.png │ │ │ │ ├── V1.2e16d0ba.fill-320x240.png │ │ │ │ └── V1.max-165x165.png │ │ │ └── original_images │ │ │ │ └── V1.png │ │ │ ├── mysite │ │ │ ├── __init__.py │ │ │ ├── settings │ │ │ │ ├── __init__.py │ │ │ │ ├── base.py │ │ │ │ ├── dev.py │ │ │ │ └── production.py │ │ │ ├── static │ │ │ │ ├── css │ │ │ │ │ └── mysite.css │ │ │ │ └── js │ │ │ │ │ └── mysite.js │ │ │ ├── templates │ │ │ │ ├── 404.html │ │ │ │ ├── 500.html │ │ │ │ └── base.html │ │ │ ├── urls.py │ │ │ └── wsgi.py │ │ │ ├── requirements.txt │ │ │ └── search │ │ │ ├── __init__.py │ │ │ ├── templates │ │ │ └── search │ │ │ │ └── search.html │ │ │ └── views.py │ ├── babitha-kumari │ │ └── README.md │ ├── chinonso-ani │ │ ├── Green-Wagtail.md │ │ ├── README.md │ │ └── RFC72.md │ ├── damilare │ │ └── README.md │ ├── elton-omwega │ │ └── README.md │ ├── kliiu │ │ └── README.md │ ├── mansi_gundre │ │ └── README.md │ ├── priscilla-baah │ │ └── README.md │ ├── roshan-rajeev │ │ └── README.md │ ├── sangmeshwar │ │ └── README.md │ ├── satvik-vashisht │ │ └── README.md │ ├── sobhan-bera │ │ └── README.md │ ├── suyash-singh │ │ └── readme.md │ ├── suyash-srivastava │ │ └── README.md │ ├── thibaud-colas │ │ └── README.md │ ├── vallabhtiwari │ │ └── README.md │ └── vibhakar-solanki │ │ └── README.md └── project-ideas.md ├── 2024 ├── README.md ├── application-template.md ├── expression-of-interest-emails.md └── proposal-draft-reviews.md ├── 2025 └── README.md ├── .all-contributorsrc ├── .gitignore ├── LICENSE ├── README.md ├── organizer-guide.md └── project-ideas.md /.gitignore: -------------------------------------------------------------------------------- 1 | *.swp 2 | *.pyc 3 | .DS_Store 4 | /.coverage 5 | /dist/ 6 | /build/ 7 | /MANIFEST 8 | /wagtail.egg-info/ 9 | /docs/_build/ 10 | /.tox/ 11 | .venv 12 | venv 13 | env 14 | *.sqlite3 15 | node_modules 16 | npm-debug.log* 17 | *.idea/ 18 | /*.egg/ 19 | /.cache/ 20 | /.pytest_cache/ 21 | /storybook-static 22 | 23 | ### JetBrains 24 | .idea/ 25 | *.iml 26 | *.ipr 27 | *.iws 28 | coverage/ 29 | 30 | ### vscode 31 | .vscode 32 | 33 | *.db 34 | -------------------------------------------------------------------------------- /2021/new-database-search-backend.md: -------------------------------------------------------------------------------- 1 | # [New Database Search Backend](https://gist.github.com/ACMCMC/06b578b15b3b69f55f0c0127956afa12) 2 | 3 | - Google Summer of Code 2021 project 4 | - Student: Aldán Creo Mariño 5 | - Mentors: Karl Hobley, Cynthia Kiser 6 | - Organization: Django Software Foundation (in collaboration with Wagtail) 7 | 8 | ## Goal 9 | 10 | The goal of my project is to replace the current default database search backend in Wagtail, which is a dummy backend that comes enabled by default, with a functional one that works on SQLite, PostgreSQL, and MySQL. 11 | 12 | ## Work that has been done 13 | 14 | ### Groundwork for the new Database Search Backend 15 | 16 | In this part, I focused on refactoring the old `DatabaseSearchBackend` to be just a fallback backend that would get used when no other backend is available. The `DatabaseSearchBackend` just performs an `icontains` query. I moved it to be part of the new `wagtail.search.backends.database` module, as the `fallback` backend. 17 | 18 | I also implemented a method in the `__init__` file, which is responsible for returning the most appropriate search backend. For example, if the current database is a PostgreSQL database, the PostgreSQL search backend gets returned. This allows the user to only specify `wagtail.search.backends.database` as their `WAGTAILSEARCH_BACKEND` in the config file, without having to choose a specific one (even though the ability to manually choose one remains intact). 19 | 20 | For every backend, there was the need to implement, among others: 21 | 22 | - A specific migration (`wagtail.search.migrations`) for the adequate table(s) in the DB to be created. 23 | - A subclass of the `BaseSearchBackend` that adds behaviour specific to the database system being used. 24 | - Utility files for use in the specific search backend. 25 | - Tests for the backend. 26 | 27 | I asked a question in the [Django Forums](https://forum.djangoproject.com/t/different-models-for-different-databases/8471) to get insigths for this part of the work. 28 | 29 | This work has been submitted in the [#7281 wagtail/wagtail PR](https://github.com/wagtail/wagtail/pull/7281). 30 | 31 | ### PostgreSQL Search Backend 32 | 33 | I worked into refactoring the existing `wagtail.contrib.postgres_search` app, into the new `wagtail.search` app, as a specific backend of the `wagtail.search.backends.database` structure. I kept the existing structure of the original database models that were created in the contrib module, and the references to Django PostgreSQL specific full-text fields. 34 | 35 | This work has been submitted in the [#7305 wagtail/wagtail PR](https://github.com/wagtail/wagtail/pull/7305). 36 | 37 | ### SQLite Search Backend 38 | 39 | For this backend, I implemented a 'shadow copy' model that enables to perform full-text searches in a table that mirrors a base table containing the `body`, `title` and `autocomplete` `TEXT` columns. The 'shadow table' is a virtual table using the SQLite FTS5 module. Documentation about SQLite full-text search capabilities can be found [here](https://www.sqlite.org/fts5.html). 40 | 41 | I asked some questions on public forums on this part of the project: 42 | 43 | - [Django Forums](https://forum.djangoproject.com/t/field-lookups-but-not-on-fields/9047). 44 | - [Stack Overflow](https://stackoverflow.com/questions/68652308/unary-not-in-sqlite-fts5-match-query). 45 | - [SQLite Forums](https://sqlite.org/forum/forumpost/9dafa0de932dda34bd561153a07bb3e18688633b7c13afffa5509b00a5ee2559). 46 | 47 | This work has been submitted in the [#7420 wagtail/wagtail PR](https://github.com/wagtail/wagtail/pull/7420). 48 | 49 | ### MySQL Search Backend 50 | 51 | The MySQL backend was the last part of the work done. This backend was implemented without the need for a shadow table. That's because MySQL directly supports defining `FULLTEXT` indexes on `TEXT` columns, as [the docs](https://dev.mysql.com/doc/refman/8.0/en/fulltext-search.html#function_match) specify. The search queries are performed in boolean mode. 52 | 53 | I asked a question in [Stack Overflow](https://stackoverflow.com/questions/68835748/nested-not-inside-an-and-in-mysql-full-text-search-queries) to get help in this part of the project. 54 | 55 | This work has been submitted in the [#7445 wagtail/wagtail PR](https://github.com/wagtail/wagtail/pull/7445). 56 | 57 | ## Work left to do 58 | 59 | - Support for autocomplete queries in the SQLite and MySQL backends. 60 | - Ensure correct ranking of the search results in the SQLite backend. 61 | - Support boosting in the SQLite and MySQL backends. 62 | - Enable support for score annotations in the SQLite backend (should be easy work). 63 | -------------------------------------------------------------------------------- /2021/wagtail-live.md: -------------------------------------------------------------------------------- 1 | # [Google Summer of Code 2021 report](https://github.com/wagtail/wagtail-live/blob/main/docs/gsoc_report.md) 2 | 3 | The goal of the Wagtail Live project was to propose a flexible open-source liveblogging tool. 4 | 5 | A live blog is a blog providing real-time updates on an ongoing event. 6 | 7 | As part of the GSOC program, my mentors and I have spent summer (June-August) 2021 working on it. 8 | 9 | This report aims to give an overview of the work done during that period. 10 | 11 | ## Design 12 | 13 | As a blogging tool, Wagtail Live cares about how a blogger manages content. 14 | 15 | In addition to the Wagtail admin that provides a smooth but less mobile-friendly editing interface, Wagtail Live gives a blogger the ability to use a messaging app like Slack, Telegram, Whatsapp to write blog posts. 16 | 17 | Wagtail Live can be divided into three major components: 18 | 19 | 1. **Receivers** 20 | 21 | A receiver is a bridge between a messaging app and a Wagtail Live page. 22 | 23 | It receives updates from the messaging app, decodes them, and saves them on the corresponding live page. 24 | 25 | 2. **LivePageMixin** 26 | 27 | `LivePageMixin` is the base model for live pages. 28 | 29 | 3. **Publishers** 30 | 31 | A publisher is a bridge between a Wagtail Live page and web clients. 32 | 33 | It delivers new/edited/deleted posts of a page to web clients viewing the page live. 34 | 35 | ## Implementation 36 | 37 | ### Milestone 1: Build a basic but working version of Wagtail Live 38 | 39 | - [Added block types](https://github.com/wagtail/wagtail-live/pull/2) 40 | - [Added `LivePageMixin` class](https://github.com/wagtail/wagtail-live/pull/4). 41 | 42 | - [Implemented a base receiver class and a Slack receiver](https://github.com/wagtail/wagtail-live/pull/11) 43 | - [Implemented `WebhookReceiverMixin`](https://github.com/wagtail/wagtail-live/pull/47). 44 | 45 | - [Added publishers using the polling technique](https://github.com/wagtail/wagtail-live/pull/51). 46 | 47 | At that point, Wagtail Live could be used with Slack and interval/long polling publishers. 48 | 49 | ### Milestone 2: More publishers and receivers 50 | 51 | This milestone involved adding more publishers and receivers. 52 | 53 | - [Added Telegram webhook receiver](https://github.com/wagtail/wagtail-live/pull/85). 54 | 55 | - [Added a publisher based on channels](https://github.com/wagtail/wagtail-live/pull/88) 56 | - [Added publishers based on websockets and starlette](https://github.com/wagtail/wagtail-live/pull/90) 57 | - [Added a PieSocket publisher](https://github.com/wagtail/wagtail-live/pull/97). 58 | 59 | ### Webapp 60 | 61 | Initially, we wanted to provide a debugging tool, `Wagtail Live debug`, to avoid setting up a messaging app in the development phase. However, we finally settled on proposing a complete alternative to messaging apps. 62 | 63 | The `webapp` is based on Django Rest Framework and will propose a user interface. A blogger can use both the `webapp` interface and the `webapp` API to manage content. 64 | 65 | Related PRs: 66 | 67 | - [Wagtail Live debug](https://github.com/wagtail/wagtail-live/pull/13) 68 | - [Renamed wagtail_live_debug to wagtail_live_interface](https://github.com/wagtail/wagtail-live/pull/19) 69 | - [Wagtail Live Interface Receiver](https://github.com/wagtail/wagtail-live/pull/43) 70 | - [Renamed wagtail_live_interface to webapp](https://github.com/wagtail/wagtail-live/pull/53) 71 | - [Add image support to webapp](https://github.com/wagtail/wagtail-live/pull/67) 72 | 73 | It's still a work in progress. 74 | 75 | Related Issues: 76 | 77 | - [API receiver - webapp authentication](https://github.com/wagtail/wagtail-live/issues/105) 78 | - [webapp documentation](https://github.com/wagtail/wagtail-live/issues/107) 79 | 80 | ## Current state of the project 81 | 82 | We've met most of the expectations outlined in the initial proposal. However, there is still some work to do. I have opened [issues](https://github.com/wagtail/wagtail-live/issues) decribing what's left. 83 | 84 | We would like to have more users try Wagtail Live and give us feedback. 85 | 86 | It would also be nice to have new contributors add more receivers/publishers. 87 | 88 | ## Tests and documentation 89 | 90 | We added documentation and tests for most of the functionalities proposed. 91 | 92 | The documentation is available at [https://wagtail.github.io/wagtail-live/](https://wagtail.github.io/wagtail-live/). 93 | 94 | From [this PR](https://github.com/wagtail/wagtail-live/pull/104), the project is 100% covered. 95 | 96 | Tests can be found in the `tests` module [here](https://github.com/wagtail/wagtail-live/tree/main/tests). 97 | 98 | ## Talks 99 | 100 | I was asked to present the project at the What's New in Wagtail webinar. The recording can be found [here](https://www.youtube.com/watch?v=CQ7Gx8b7ac4). 101 | 102 | I'm also delivering a talk at the [Djangocon US conference](https://2021.djangocon.us/), which will take place on October 21-23, 2021. 103 | 104 | ## Feelings 105 | 106 | From technical skills to soft skills, I've learned a lot in this project. To name a few: 107 | 108 | - Django and Wagtail internals 109 | - asynchronous programming 110 | - websocket protocol 111 | - pytest 112 | - package releasing 113 | - Github actions 114 | 115 | I thank my excellent mentors who have also contributed a lot to the project besides their guidance: 116 | 117 | - Coen van Der Kamp [@allcaps](https://github.com/allcaps) 118 | - Tom Dyson [@tomdyson](https://github.com/tomdyson) 119 | - Lucas Moeskops [@lucasmoeskops](https://github.com/lucasmoeskops) 120 | - Storm Heg [@stormheg](https://github.com/Stormheg) 121 | 122 | We have also received nice help from Nick Lee (Senior designer at Torchbox) and Andy Babic [@ababic](https://github.com/ababic). 123 | 124 | ## Links 125 | 126 | - [Github page](https://github.com/wagtail/wagtail-live) 127 | - [PyPI](https://pypi.org/project/wagtail-live/) 128 | - [Wagtail Live proposal](https://docs.google.com/document/d/e/2PACX-1vRu022h-LZn-X88Ao19_p8EEf8Bj9Lr-CPXiexpTkI7EyeMmSVVufYFxsf2bHh38kG9bAIkvRDRgttW/pub) 129 | - [GSOC project page](https://summerofcode.withgoogle.com/projects/#6430724455923712) 130 | -------------------------------------------------------------------------------- /2023/README.md: -------------------------------------------------------------------------------- 1 | # Google Summer of Code 2023 2 | 3 | - [Contributor guide](./contributor-guide.md) 4 | - [Project ideas](./project-ideas.md) 5 | - [Organizer guide](./organizer-guide.md) 6 | 7 | ## Getting started 8 | 9 | Do you want to take part in Google Summer of Code 2023 with Wagtail? Please review our [contributor guide](./contributor-guide.md). 10 | 11 | ## Reach out 12 | 13 | Keen to take part in Google Summer of Code with Wagtail? We use [GitHub Discussions](https://github.com/wagtail/gsoc/discussions) for all discussions during the initial application period and before. Have a look at Wagtail’s [code of conduct](https://github.com/wagtail/wagtail/blob/main/CODE_OF_CONDUCT.md) and come say hi. 14 | -------------------------------------------------------------------------------- /2023/greener-coding-responsive-images.md: -------------------------------------------------------------------------------- 1 | # Greener Coding: responsive images 2 | 3 | This project aims to contribute to reducing the environmental impact of web applications by making the Wagtail CMS more sustainable. 4 | 5 | Goals: 6 | 7 | - Develop a suite of performance tests to measure the energy efficiency of Wagtail. 8 | - Produce a report on the climate impact of Wagtail sites at this point in time. 9 | - Implement more sustainable web development practices in Wagtail and improve energy efficiency. 10 | - Encouraging the adoption of sustainable web development practices by raising awareness among Wagtail developers. 11 | 12 | Approach: 13 | 14 | - Serving responsive images, 15 | - Serving images in next-gen formats, 16 | - Template caching for sites, 17 | - YouTube lite embeds, 18 | - Carbon Aware CMS, 19 | - Speeding up tests, 20 | - Wagtail-aware Django debug toolbar, 21 | - Improve accessibility features, 22 | - Optimising styles and scripts and Spread awareness. 23 | 24 | Deliverables: 25 | 26 | - The climate impact of Wagtail sites will be measurable with agreed-upon methodologies, and we will do so on a regular basis. 27 | - By the end of the project, we will have released a number of energy efficiency improvements reducing the impact of Wagtail sites. 28 | -------------------------------------------------------------------------------- /2023/greener-coding.md: -------------------------------------------------------------------------------- 1 | # Google summer of code 2023 final project report 2 | 3 | **Contributor**: [Aman Pandey](https://github.com/salty-ivy) 4 | 5 | **Mentor**: [Chris Adams](https://github.com/mrchrisadams) 6 | 7 | **Project**: [Greener coding 💚: Backend development](https://github.com/orgs/wagtail/projects/30/views/1) 8 | 9 | **Organization**: [Wagtail](https://github.com/wagtail/wagtail) 10 | 11 | **Original idea discussion by chris adams**: [Greener coding:Making a 'gold' reference configuration with the Wagtail bakery app](https://github.com/wagtail/wagtail/discussions/8843) 12 | 13 | **Contributor proposal**: [Wagtail: Greener coding (GSoC 2023 Proposal)](https://docs.google.com/document/d/1u9F8Pw4TLGRBIwOt2Fofma3ER8yB9y2MEZ_-U3K9-Zg/edit) 14 | 15 | ## Description 16 | 17 | The project aims to integrate green coding practices into Wagtail’s direction and make concrete improvements to reduce related carbon emissions also ensuring that the websites we build are environmentally friendly. We plan to do so by improving different parts of wagtail architecture like improving project templates, adopting internal template caching, extending image support and lazy loading, lighter embeds, job scheduling interface for asynchronous task processing, eco-friendly themes, and other processing-related optimisations. 18 | 19 | **Technologies used**: django, wagtail, python 20 | 21 | ### Execution 22 | 23 | Original Greener Coding was divided into 2 parts namely 1.**Greener coding: Frontend development** 2.**Greener coding: Backedn development**. This report consist the progress for **2. Backend development**. 24 | 25 | We along with organization maintainers priortized certain tasks over the others that can be rolled out into wagtial's new release. 26 | 27 | Our sustainable coding initiative diverged from conventional developmental trajectories, diverging significantly in its approach. The crux of its impact resides in pioneering research directed towards the reduction of carbon emissions. Our preliminary research during the coding phase unveiled several pathways for exploration, each meticulously prioritized based on complexity and feasibility for integration into forthcoming releases. These pathways encompass: 28 | 29 | Integration of AVIF support into Willow: AVIF, a lightweight image format, demonstrates superior efficiency compared to its counterparts. Static site pages enriched with AVIF-encoded images exhibit substantially reduced load times and resource consumption compared to those incorporating alternative formats. 30 | 31 | Extension of AVIF support to Wagtail: Building upon the successful integration of AVIF within Willow, we seamlessly extended this support to Wagtail. Concurrently, a concerted effort was made to foster adoption amongst fellow developers, encouraging the incorporation of this technology into their projects. 32 | 33 | Implementation of "scale to zero" configurations for Wagtail sites: Leveraging serverless architectures such as neon.tech, we explored the concept of "scale to zero" configurations for Wagtail sites. This endeavor aimed to enhance resource efficiency by dynamically adapting server capacity to match traffic demands, thereby minimizing carbon footprint and operational costs. 34 | 35 | Development of a Green Wagtail-specific debug toolbar: Addressing the need for developers to gauge the optimization levels and resource intensity of their sites and pages during the development phase, this debug toolbar emerges as a crucial tool. By providing insights into the optimization status of their projects, developers are empowered to make informed decisions that lead to more streamlined and resource-efficient outcomes. 36 | 37 | ## Work done 38 | 39 | 1. AVIF support for willow PR https://github.com/wagtail/Willow/pull/115 40 | 2. AVIF support for Wagtail PR https://github.com/wagtail/wagtail/pull/10657 41 | 42 | ### What's next 43 | 44 | While we can still venture on many imporvements related to our sustaninable development but its really important for us to measure those in action to show if it actually makes any difference or not, so our next step would be to `benchmark` 45 | these changes on a project using [Green Metric Tool](https://docs.green-coding.berlin). 46 | 47 | 1. Original benchmarking on wagtial bakerydemo by [Thibaud colas](https://github.com/thibaudcolas): [bakerydemo GOLD benchmarking](https://github.com/thibaudcolas/bakerydemo-gold-benchmark) 48 | 49 | 2. Benchmarking the impact of AVIF over other image formats: [AVIF GOLD benchmarking on demo project](https://github.com/salty-ivy/wagtail-AVIF-demo-GOLD-benchmark/tree/main) 50 | 51 | ## Blogs 52 | 53 | 1. [Wagtail's sustainability consideration page](https://wagtail--10527.org.readthedocs.build/en/10527/advanced_topics/sustainability_considerations.html) 54 | 2. [Wagtail gets bit leaner and greener](https://wagtail.org/blog/wagtail-greener-and-leaner/#:~:text=Our%20latest%20release%20focuses%20on%20improving%20performance%20and%20reducing%20Wagtail%27s%20carbon%20footprint&text=We%20designed%20Wagtail%20to%20help,work%20for%20our%20planet%20too.) 55 | 3. [Green Web Foundation helping us make wagtail greener](https://www.thegreenwebfoundation.org/news/working-with-the-wagtail-community-on-the-summer-of-code/) 56 | -------------------------------------------------------------------------------- /2023/organizer-guide.md: -------------------------------------------------------------------------------- 1 | # Organizer guide 2 | 3 | Thanks for being a GSoC Org Admin! The buck stops here. You’re the organizer of this year’s Wagtail GSoC. You’re responsible for the overall success of the program. You’re the point of contact with Google, all of the mentors, and all of the candidates, contributors, interns. 4 | 5 | ## Getting started 6 | 7 | - [ ] Read through the [GSoC Mentor guide](https://google.github.io/gsocguides/mentor/). 8 | - [ ] Read through the [GSoC Contributor guide](https://google.github.io/gsocguides/student/) 9 | - [ ] Read [GSoC Organization Admin Tips](https://developers.google.com/open-source/gsoc/help/oa-tips) 10 | - [ ] Meet all of the mentors you will be working with this year. 11 | - [ ] If there aren’t enough mentors (including support and backups), recruit more. 12 | 13 | ## Time commitment 14 | 15 | Here are expected time commitments for GSoC mentors and organizers. As a list: 16 | 17 | | Role | Time commitment (estimated) | 18 | | -------------------------------------------------- | --------------------------- | 19 | | Community application organizer | 2-5h | 20 | | Organisation before application period | 5-10h | 21 | | Contributors support before applications | 10-25h | 22 | | Contributors support during applications | 10-25h | 23 | | Organization administrator / Community coordinator | 2-3h / week | 24 | | Support project mentor | 2-5h / week | 25 | | Lead project mentor | 5-10h / week | 26 | 27 | ## Resources 28 | 29 | - [wagtail.org/gsoc](https://wagtail.org/gsoc) – this repository 30 | - [wagtail.org/gsoc-guide](https://wagtail.org/gsoc-guide) – contributors guide 31 | - [wagtail.org/coc](https://wagtail.org/coc) – Wagtail Code of Conduct 32 | -------------------------------------------------------------------------------- /2023/participants/Ahmed-Hanoon/README.md: -------------------------------------------------------------------------------- 1 | # Introduction 2 | 3 | Hi, 4 | 5 | I'm Hanoon, a sophomore computer science and engineering student from IIIT, Delhi in India. I have huge interest in open source development and I came across Wagtail a few months back. Since then I have been part of its Slack discussions and code fixes. 6 | 7 | I have worked with lots of technical clubs in my college and do freelancing as a Web Developer. I am well experienced with Django, JavaScript and Python. 8 | 9 | I'm excited to be part of this community and I believe GSoC will provide me an excellent opportunity to contribute more to Wagtail 😃 10 | 11 | 12 | | Social | 13 | |------------------------------------------------------------------------------------------| 14 | | GitHub | 15 | | Twitter | 16 | | Mastodon | 17 | | LinkedIn | 18 | | Personal Website | 19 | 20 | ### Blogs 21 | Here is my recent blog discussing my journey in programming so far! 22 | 23 | ## Tasks 24 | 25 | ### Checklist: open source contributions 26 | 27 | This checklist helps you demonstrate your understanding of how people use GitHub to collaborate. 28 | 29 | - [x] Read through [How to contribute to open source](https://opensource.guide/how-to-contribute/) 30 | - [x] Read [Open source etiquette](https://developer.mozilla.org/en-US/docs/MDN/Community/Open_source_etiquette) 31 | - [x] Make your first [pull request](https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/creating-a-pull-request) with us! Add your name to the list of participants in [2023/README.md](2023/README.md). 32 | - [x] Clone this repository, then add a new folder inside `2023/` with your name as the folder name. Inside that folder, add a `README.md` file, and copy-paste the introduction you posted earlier. Submit this to our project as a pull request. 33 | - [x] Read through GitHub’s [Markdown formatting documentation](https://docs.github.com/en/get-started/writing-on-github/getting-started-with-writing-and-formatting-on-github/basic-writing-and-formatting-syntax) 34 | - [x] Now make another pull request to your own README file, adding a Markdown table with links to: 35 | - [x] Your GitHub profile 36 | - [x] Your Twitter profile if any 37 | - [x] Your Mastodown profile if any 38 | - [x] Your LinkedIn profile if any 39 | - [x] Your personal website 40 | - [x] Update your pull request to add a new `## Tasks` section to your participant file, and copy-paste our contributor guide’s checklists into it, marking each item as completed or not according to your progress. 41 | 42 | For participants already experienced with GitHub and Markdown, feel free to make all of the above changes in a single pull request. 43 | 44 | To stand out as an applicant, 45 | 46 | - [x] Help others with their pull requests – spotting steps they might have missed, or suggesting improvements to their pull requests. 47 | - [x] Demonstrate good awareness of open source etiquette when creating your pull requests (for example, adding an appropriate title and description). 48 | 49 | ### Checklist: interest in learning 50 | 51 | With this checklist, we expect you to demonstrate an ability to do research and learn new things. All tasks here will require updating your participant file within this `gsoc` repository in the `2023/` folder. 52 | 53 | - [x] Create a new `## Research` section in your personal file, with a list of links to the resources you’ve found most useful so far in trying to understand Wagtail as a project and the specific GSoC project idea you’re interested in. 54 | - [x] Go through our projects under the [wagtail organisation](https://github.com/wagtail) in GitHub. Create a new list with links to repositories or specific issues you would be interested in contributing to during the internship. 55 | - [x] Write a short blog post describing things you’ve learned recently, and share it with us. The post must be in English, include at least one image, be less than 500 words, and score a Grade 6 or lower on . The post has to be posted on a publicly-available platform (Dev.to, Hashnode, Medium, your own website), and you must also add it as a new section in your personal file in this repository (so we can provide feedback on the contents). 56 | 57 | ### Checklist: Django and Wagtail 58 | 59 | Here, we expect you to go through two tutorials to demonstrate your understanding of Django and Wagtail. Submit both projects you will have created as a pull request on this `gsoc` repository. 60 | 61 | - [x] Go through Django’s [Getting started documentation and tutorial](https://docs.djangoproject.com/en/4.1/intro/), until part 7. 62 | - [x] Go through Wagtail’s Getting started tutorial: [Your first Wagtail site](https://docs.wagtail.org/en/stable/getting_started/tutorial.html) 63 | 64 | 65 | ## Research 66 | 67 | - I have decided to pick the "Greener Coding" project and have done quite a bit of research 68 | - My primary focus was find the areas Wagtail might be consuming more energy and find what are the changes similiar CMSs do for fixing them. 69 | - Some of my findings were the use of caching and CDN along with modern image formatting. https://www.smashingmagazine.com/2021/09/modern-image-formats-avif-webp/, https://www.imperva.com/learn/performance/time-to-live-ttl/ 70 | - I have also decided to look into the different energy usage with themes 71 | - Tools like GMT and/or Greenframe can be used to evaluate energy usages of Wagtail app. https://github.com/marmelab/greenframe-cli 72 | - I still got some more work to do, I will soon update my findings here 73 | 74 | ### Interested Repositories and Issues 75 | I will update this list as I research through more issues and repos 76 | 77 | 78 | - https://github.com/green-coding-berlin/bakerydemo-gold-benchmark 79 | -------------------------------------------------------------------------------- /2023/participants/Bhavya-Soni/README.md: -------------------------------------------------------------------------------- 1 | ## **Introduction** 2 | - Hey everyone, I am Bhavya from India. I have been programming with Python language for the last 4+ years. I started programming with competitive coding and backend development then learned new technologies like machine learning and deep learning. I am very excited to be a part of an open source project as there are always new things to learn from peers and mentors, and also I want to contribute my knowledge to the open source community. 3 | - I want to contribute to wagtail as it is widely used by the organizations. Specifically, I want to contribute to the project idea `RFC 72: Background workers`. As I have worked with message queuing(RabbitMQ and celery), it will be great to implement the technology in wagtail. It will improve the performance of the product. 4 | - To be part of an open source community itself will be an achievement for any individual and to be part of Wagtail open source community via GSoC platform adds more value and great leaning experience. 5 | 6 | 7 | | Social | Link | 8 | | ----------- | ----------------------------------------------------------------| 9 | | GitHub Profile | [Bhavya-GitHub](https://github.com/BhavyaSoni31) | 10 | | LinkedIn Profile | [Bhavya-LinkedIn](https://www.linkedin.com/in/bhavya-soni-3110) | 11 | 12 | --- 13 | 14 | 15 | ## **Tasks** 16 | 17 | ### Checklist: Google Summer of Code 18 | - [x] Watch the official [‘Introduction to GSoC’ video](https://www.youtube.com/watch?v=7jD2tChhrWM&feature=youtu.be). 19 | - [x] Read [Advise for People Applying for GSoC](https://developers.google.com/open-source/gsoc/help/student-advice). 20 | - [x] Read all of Google’s [contributor guide](https://google.github.io/gsocguides/student/) 21 | - [x] Read the official [timeline](https://developers.google.com/open-source/gsoc/timeline) and add the most important dates as reminders on your calendar. 22 | - [x] Introduce yourself on our [Welcome to Wagtail! Introductions](https://github.com/wagtail/gsoc/discussions/1) discussion thread. 23 | 24 | ### Checklist: open source contributions 25 | - [x] Read through [How to contribute to open source](https://opensource.guide/how-to-contribute/) 26 | - [x] Read [Open source etiquette](https://developer.mozilla.org/en-US/docs/MDN/Community/Open_source_etiquette) 27 | - [x] Make your first [pull request](https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/creating-a-pull-request) with us! Add your name to the list of participants in [2023/README.md](2023/README.md). 28 | - [x] Clone this repository, then add a new folder inside `2023/` with your name as the folder name. Inside that folder, add a `README.md` file, and copy-paste the introduction you posted earlier. Submit this to our project as a pull request. 29 | - [x] Read through GitHub’s [Markdown formatting documentation](https://docs.github.com/en/get-started/writing-on-github/getting-started-with-writing-and-formatting-on-github/basic-writing-and-formatting-syntax) 30 | - [x] Now make another pull request to your own README file, adding a Markdown table with links to: 31 | - [x] Your GitHub profile 32 | - [ ] Your Twitter profile if any 33 | - [ ] Your Mastodown profile if any 34 | - [x] Your LinkedIn profile if any 35 | - [ ] Your personal website 36 | - [x] Update your pull request to add a new `## Tasks` section to your participant file, and copy-paste our contributor guide’s checklists into it, marking each item as completed or not according to your progress. 37 | - [ ] Help others with their pull requests – spotting steps they might have missed, or suggesting improvements to their pull requests. 38 | - [x] Demonstrate good awareness of open source etiquette when creating your pull requests (for example, adding an appropriate title and description). 39 | 40 | 41 | ### Checklist: interest in learning 42 | - [x] Create a new `## Research` section in your personal file, with a list of links to the resources you’ve found most useful so far in trying to understand Wagtail as a project and the specific GSoC project idea you’re interested in. 43 | - [ ] Go through our projects under the [wagtail organisation](https://github.com/wagtail) in GitHub. Create a new list with links to repositories or specific issues you would be interested in contributing to during the internship. 44 | - [ ] Write a short blog post describing things you’ve learned recently, and share it with us. The post must be in English, include at least one image, be less than 500 words, and score a Grade 6 or lower on . The post has to be posted on a publicly-available platform (Dev.to, Hashnode, Medium, your own website), and you must also add it as a new section in your personal file in this repository (so we can provide feedback on the contents). 45 | 46 | 47 | ### Checklist: Django and Wagtail 48 | - [x] Go through Django’s [Getting started documentation and tutorial](https://docs.djangoproject.com/en/4.1/intro/), until part 7. 49 | - [x] Go through Wagtail’s Getting started tutorial: [Your first Wagtail site](https://docs.wagtail.org/en/stable/getting_started/tutorial.html) 50 | 51 | 52 | ## **Research** 53 | 54 | - For the project idea of this topic `RFC 72: Background workers` I have gone through some of the technologies available and gathered the documentations which will be helpful to implement the scenarios asked in the problem statements. 55 | - [Getting started with RabbitMQ with Python](https://www.rabbitmq.com/tutorials/tutorial-one-python.html) 56 | - [Getting started with using celery with Django](https://docs.celeryq.dev/en/stable/django/first-steps-with-django.html) -------------------------------------------------------------------------------- /2023/participants/Blessey_Maria_Saju/README.md: -------------------------------------------------------------------------------- 1 | ## **Introduction** 2 | - My name is Blessey Maria Saju, and I am a web development and machine learning enthusiast. I am 4th year computer science and engineering student from India. I am a beginner to open-source contribution. I am excited to explore new opportunities, learn and contribute to open-source projects.By contributing to the open-source projects, it would be a perfect opportunity for enhance my skills, working on excellent projects, opportunity to connect with other developer. 3 | 4 | - I also volunteered as web developer in various organisations and know full stack development and DevOps. 5 | 6 | - I am proficient with HTML, CSS, JavaScript Django, python, Node.js and React.js along with CI/CD technologies like Jenkins, Kubernetes, and Docker. 7 | 8 | - Thank you for this opportunity, and I look forward to contributing to Wagtail. I am looking forward to connecting with you all. 9 | 10 | 11 | 12 | | Social | Link | 13 | | ----------- | ----------------------------------------------------------------| 14 | | GitHub Profile | [Blessey-GitHub](https://github.com/blessey15) | 15 | | LinkedIn Profile | [Blessey-LinkedIn](https://www.linkedin.com/in/blesseymariasaju) | 16 | 17 | --- 18 | 19 | ## **Tasks** 20 | 21 | ### Checklist: Google Summer of Code 22 | - [x] Watch the official [‘Introduction to GSoC’ video](https://www.youtube.com/watch?v=7jD2tChhrWM&feature=youtu.be). 23 | - [x] Read [Advise for People Applying for GSoC](https://developers.google.com/open-source/gsoc/help/student-advice). 24 | - [x] Read all of Google’s [contributor guide](https://google.github.io/gsocguides/student/) 25 | - [x] Read the official [timeline](https://developers.google.com/open-source/gsoc/timeline) and add the most important dates as reminders on your calendar. 26 | - [x] Introduce yourself on our [Welcome to Wagtail! Introductions](https://github.com/wagtail/gsoc/discussions/1) discussion thread. 27 | 28 | ### Checklist: open source contributions 29 | - [x] Read through [How to contribute to open source](https://opensource.guide/how-to-contribute/) 30 | - [x] Read [Open source etiquette](https://developer.mozilla.org/en-US/docs/MDN/Community/Open_source_etiquette) 31 | - [x] Make your first [pull request](https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/creating-a-pull-request) with us! Add your name to the list of participants in [2023/README.md](2023/README.md). 32 | - [x] Clone this repository, then add a new folder inside `2023/` with your name as the folder name. Inside that folder, add a `README.md` file, and copy-paste the introduction you posted earlier. Submit this to our project as a pull request. 33 | - [x] Read through GitHub’s [Markdown formatting documentation](https://docs.github.com/en/get-started/writing-on-github/getting-started-with-writing-and-formatting-on-github/basic-writing-and-formatting-syntax) 34 | - [x] Now make another pull request to your own README file, adding a Markdown table with links to: 35 | - [x] Your GitHub profile 36 | - [ ] Your Twitter profile if any 37 | - [ ] Your Mastodown profile if any 38 | - [x] Your LinkedIn profile if any 39 | - [ ] Your personal website 40 | - [x] Update your pull request to add a new `## Tasks` section to your participant file, and copy-paste our contributor guide’s checklists into it, marking each item as completed or not according to your progress. 41 | - [ ] Help others with their pull requests – spotting steps they might have missed, or suggesting improvements to their pull requests. 42 | - [] Demonstrate good awareness of open source etiquette when creating your pull requests (for example, adding an appropriate title and description). 43 | 44 | 45 | ### Checklist: interest in learning 46 | - [ ] Create a new `## Research` section in your personal file, with a list of links to the resources you’ve found most useful so far in trying to understand Wagtail as a project and the specific GSoC project idea you’re interested in. 47 | - [ ] Go through our projects under the [wagtail organisation](https://github.com/wagtail) in GitHub. Create a new list with links to repositories or specific issues you would be interested in contributing to during the internship. 48 | - [ ] Write a short blog post describing things you’ve learned recently, and share it with us. The post must be in English, include at least one image, be less than 500 words, and score a Grade 6 or lower on . The post has to be posted on a publicly-available platform (Dev.to, Hashnode, Medium, your own website), and you must also add it as a new section in your personal file in this repository (so we can provide feedback on the contents). 49 | 50 | 51 | ### Checklist: Django and Wagtail 52 | - [x] Go through Django’s [Getting started documentation and tutorial](https://docs.djangoproject.com/en/4.1/intro/), until part 7. 53 | - [x] Go through Wagtail’s Getting started tutorial: [Your first Wagtail site](https://docs.wagtail.org/en/stable/getting_started/tutorial.html) 54 | 55 | 56 | 57 | 58 | -------------------------------------------------------------------------------- /2023/participants/Debapriya Jha/README.md: -------------------------------------------------------------------------------- 1 | Hello everyone, my name is Debapriya and I'm a second-year engineering student in India. I am excited to be joining this community! I am a software developer 2 | with experience in Java, C++, and Python. I am also familiar with web development technologies such as HTML, CSS, JavaScript, machine learning concepts, Django, 3 | and PHP. I am interested in contributing to Wagtail and learning more about its technologies and functionalities. 4 | 5 | I am eager to use my skills to make meaningful contributions to the project and work with the team to improve its features and functionalities. This will be my 6 | first open-source contribution and I am looking forward to learning from the community and contributing to the growth of the project. 7 | 8 | I am open to any suggestions on how I can get started and learn more about Wagtail's technologies. I am excited to collaborate and contribute to this project. 9 | -------------------------------------------------------------------------------- /2023/participants/Dharmendra Solanki/README.md: -------------------------------------------------------------------------------- 1 | 2 | #Introduction 3 | 4 | Hi, I am Dharmendra. I'm currently a pre-final year motilal nehru national institute of technology allahabad student and passion for full-stack development. In addition, I am currently learning Machin learning and Blockchain development my tech stack is React Js.Ethereum. 5 | I am looking forward to learning and contributing to an organization that creates a positive impact on society. 6 | I want to get an opportunity to learn new things and explore my skills in a particular direction. 7 | 8 | Aside from programming, I enjoy playing esports games such as Valorant and lifting weights at the gym. 9 | 10 | I'm particularly interested in contributing to Wagtail for GSoC 2023, as I believe it's a fantastic opportunity for me to learn, grow and make a positive impact in the open-source community. As a full-stack developer, I have a wealth of experience working with technologies such as Django, CSS, JavaScript, and React,TypeScript and I Am Blockchain developer which I believe will be very useful in contributing to the Wagtail Project. 11 | 12 | ## Social Media Handles 13 | 14 | * [Mail](dharmendra.20208039@mnnit.ac.in) 15 | * [LinkdIn](https://www.linkedin.com/in/dharmendra-solanki-a72127206/) 16 | * [GitHub](https://github.com/ProgrammingPirates) 17 | * [Twitter](https://twitter.com/sodharmendra74) 18 | * [personal Portfolio](https://dharmendrasolanki.netlify.app/) 19 | 20 | ## Tasks 21 | 22 | ### Checklist: Google Summer of Code 23 | 24 | [x] Watch the official [‘Introduction to GSoC’ video](https://www.youtube.com/watch?v=7jD2tChhrWM&feature=youtu.be). 25 | [x] Read [Advise for People Applying for GSoC.](https://developers.google.com/open-source/gsoc/help/student-advice) 26 | [x] Read all of Google’s [contributor guide](https://google.github.io/gsocguides/student/) 27 | [x] Read the official [timeline](https://developers.google.com/open-source/gsoc/timeline) and add the most important dates as reminders on your calendar. 28 | [x] Introduce yourself on our Welcome to Wagtail! Introductions discussion thread. 29 | 30 | ### Checklist: open source contributions 31 | [x] Read through [How to contribute to open source](https://opensource.guide/how-to-contribute/) 32 | [x] Read [Open source etiqutte](https://developer.mozilla.org/en-US/docs/MDN/Community/Open_source_etiquette) 33 | [x] Clone this repository, then add a new folder inside 2023/ with your name as the folder name. Inside that folder, add a README.md file, and copy-paste the introduction you posted earlier. Submit this to our project as a pull request. 34 | [x] Make your first pull request with us! Add your name to the list of the participants in [2023/README.md](https://github.com/Decoy101/gsoc/blob/main/2023/README.md) 35 | [x] Read through [GitHub’s Markdown formatting documentation](https://docs.github.com/en/get-started/writing-on-github/getting-started-with-writing-and-formatting-on-github/basic-writing-and-formatting-syntax) 36 | [x] Now make another pull request to your own README file, adding a Markdown table with links to: 37 | [x] Your GitHub profile 38 | [x] Your Twitter profile if any 39 | [x] Your LinkedIn profile if any 40 | [x] Your personal website 41 | [x] Update your pull request to add a new `##Tasks` section to your participant file, and copy-paste our contributor guide’s checklists into it, marking each item as completed or not according to your progress. 42 | 43 | ### Checklist: interest in learning 44 | 45 | [ ] Create a new `##Research` section in your personal file, with a list of links to the resources you’ve found most useful so far in trying to understand Wagtail as a project and the specific GSoC project idea you’re interested in. 46 | [ ] Go through our projects under the [wagtail organisation](https://github.com/wagtail) in GitHub. Create a new list with links to repositories or specific issues you would be interested in contributing to during the internship. 47 | [ ] Write a short blog post describing things you’ve learned recently, and share it with us. The post must be in English, include at least one image, be less than 500 words, and score a Grade 6 or lower on [https://hemingwayapp.com/](https://hemingwayapp.com/). The post has to be posted on a publicly-available platform (Dev.to, Hashnode, Medium, your own website), and you must also add it as a new section in your personal file in this repository (so we can provide feedback on the contents). 48 | 49 | ### Checklist: Django and Wagtail 50 | 51 | [x] Go through Django’s [Getting started documentation and tutorial](https://docs.djangoproject.com/en/4.1/intro/), until part 7. 52 | [x] Go through Wagtail’s Getting started tutorial: [Your first Wagtail site](https://docs.wagtail.org/en/stable/getting_started/tutorial.html) 53 | 54 | ## Research 55 | -------------------------------------------------------------------------------- /2023/participants/Ezad Zamily/README.md: -------------------------------------------------------------------------------- 1 | Hello Everyone, I'm Ezad 2 | 3 | I'm a second year Software Engineering student in Glasgow but I am originally from Malaysia. I have had about 2 years experience with Python and have learned the Django framework over the past year. 4 | As a beginner in open-source contributions, I have much to learn but I am fully commited in putting in the work and I always strive to learn new things no matter how long it takes me. 5 | My hope in participating in GSoC is to learn as much as I can about open source contributing and upgrading my programming skills. I am certain that I will be a great asset to the Wagtail community 😁 6 | 7 | | Site | Link | 8 | | --- | --- | 9 | | Github | [https://github.com/ezad99](https://github.com/ezad99) | 10 | | Twitter | [https://twitter.com/haziq_ezad](https://twitter.com/haziq_ezad) | 11 | | LinkedIn | [https://www.linkedin.com/in/ezadzamily/](https://www.linkedin.com/in/ezadzamily/) | 12 | 13 | ## Tasks 14 | ### Checklists 15 | 16 | We use checklists so all candidates demonstrate their interest and skills with the same process. They will help you get started and make sure you’re on the right track. 17 | 18 | #### Checklist: Google Summer of Code 19 | 20 | This is the first checklist for candidates to go through. It’s a good idea to start early, so you can get to know the community and the project. 21 | 22 | - [x] Watch the official [‘Introduction to GSoC’ video](https://www.youtube.com/watch?v=7jD2tChhrWM&feature=youtu.be). 23 | - [x] Read [Advice for People Applying for GSoC](https://developers.google.com/open-source/gsoc/help/student-advice). 24 | - [x] Read all of Google’s [contributor guide](https://google.github.io/gsocguides/student/) 25 | - [x] Read the official [timeline](https://developers.google.com/open-source/gsoc/timeline) and add the most important dates as reminders on your calendar. 26 | 27 | You’ve done the hardest bits! Now all that’s left is for you to: 28 | 29 | - [x] Introduce yourself on our [Welcome to Wagtail! Introductions](https://github.com/wagtail/gsoc/discussions/1) discussion thread. 30 | 31 | ### Checklist: open source contributions 32 | 33 | This checklist helps you demonstrate your understanding of how people use GitHub to collaborate. 34 | 35 | - [x] Read through [How to contribute to open source](https://opensource.guide/how-to-contribute/) 36 | - [x] Read [Open source etiquette](https://developer.mozilla.org/en-US/docs/MDN/Community/Open_source_etiquette) 37 | - [x] Make your first [pull request](https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/creating-a-pull-request) with us! Add your name to the list of participants in [2023/README.md](2023/README.md). 38 | - [x] Clone this repository, then add a new folder inside `2023/` with your name as the folder name. Inside that folder, add a `README.md` file, and copy-paste the introduction you posted earlier. Submit this to our project as a pull request. 39 | - [x] Read through GitHub’s [Markdown formatting documentation](https://docs.github.com/en/get-started/writing-on-github/getting-started-with-writing-and-formatting-on-github/basic-writing-and-formatting-syntax) 40 | - [x] Now make another pull request to your own README file, adding a Markdown table with links to: 41 | - [x] Your GitHub profile 42 | - [x] Your Twitter profile if any 43 | - [ ] Your Mastodon profile if any 44 | - [x] Your LinkedIn profile if any 45 | - [ ] Your personal website 46 | - [x] Update your pull request to add a new `## Tasks` section to your participant file, and copy-paste our contributor guide’s checklists into it, marking each item as completed or not according to your progress. 47 | 48 | For participants already experienced with GitHub and Markdown, feel free to make all of the above changes in a single pull request. 49 | 50 | To stand out as an applicant, 51 | 52 | - [ ] Help others with their pull requests – spotting steps they might have missed, or suggesting improvements to their pull requests. 53 | - [ ] Demonstrate good awareness of open source etiquette when creating your pull requests (for example, adding an appropriate title and description). 54 | 55 | ### Checklist: interest in learning 56 | 57 | With this checklist, we expect you to demonstrate an ability to do research and learn new things. All tasks here will require updating your participant file within this `gsoc` repository in the `2023/` folder. 58 | 59 | - [ ] Create a new `## Research` section in your personal file, with a list of links to the resources you’ve found most useful so far in trying to understand Wagtail as a project and the specific GSoC project idea you’re interested in. 60 | - [ ] Go through our projects under the [wagtail organisation](https://github.com/wagtail) in GitHub. Create a new list with links to repositories or specific issues you would be interested in contributing to during the internship. 61 | - [ ] Write a short blog post describing things you’ve learned recently, and share it with us. The post must be in English, include at least one image, be less than 500 words, and score a Grade 6 or lower on . The post has to be posted on a publicly-available platform (Dev.to, Hashnode, Medium, your own website), and you must also add it as a new section in your personal file in this repository (so we can provide feedback on the contents). 62 | 63 | ### Checklist: Django and Wagtail 64 | 65 | Here, we expect you to go through two tutorials to demonstrate your understanding of Django and Wagtail. Submit both projects you will have created as a pull request on this `gsoc` repository. 66 | 67 | - [ ] Go through Django’s [Getting started documentation and tutorial](https://docs.djangoproject.com/en/4.1/intro/), until part 7. 68 | - [ ] Go through Wagtail’s Getting started tutorial: [Your first Wagtail site](https://docs.wagtail.org/en/stable/getting_started/tutorial.html) 69 | -------------------------------------------------------------------------------- /2023/participants/Krishna-Dhakad/Readme.md: -------------------------------------------------------------------------------- 1 | ## **Introduction** 2 | 3 | 4 | 5 | - Hi , Everyone 6 | My name is krishnkant, currently i'm pursuing my btech education in computer enginering from prestige institute of Enginering and 7 | Reaserach Indore, India , im also work as a django devloper at Godlen Eagle Tech ,indore 8 | I have a good experience and knowledge working with python and its Web Dev framework Django ,flask and its other lib like collection , 9 | Celery and Requests 10 | 11 | Here is my tech stack details 12 | 13 | - Python 14 | 15 | - Django 16 | 17 | - Django REST , Flask 18 | 19 | - Python Request , Asyncio 20 | 21 | - Queued task Celery , Redis , RebbitMQ , celery - beat 22 | 23 | - Numpy , pandas , collection 24 | 25 | - Pgsql , git version control , 26 | 27 | - Docker , Linux distributions , Heroku 28 | 29 | - Object Oriented Programming 30 | 31 | - Software development life cycle and methodologies 32 | Test Driven Develpment , Behavior-driven development (BDD) , SOLID principle of software devlopment 33 | 34 | - Multithreading , multiprocessing 35 | 36 | - Javascript , React 37 | 38 | 39 | 40 | - Project i want to contribute 41 | I want to contribute to the project idea `RFC 72: Background workers` , 42 | - here we can use task queueing with Celery ,and message broker with Redis or RebbitmQ 43 | the task can be schedulled and assiged to celery-beat worker and can also be distributted in worker pool 44 | - Asyncio also be useful here for creating and assigning task 45 | 46 | 47 | 48 | - Here are my social link 49 | 50 | | Social | Link | 51 | | ----------- | ----------------------------------------------------------------| 52 | | GitHub Profile | [Krishna Dhakad-GitHub](https://github.com/Krishna2864) | 53 | | LinkedIn Profile | [Krishna Dhakad-LinkedIn](https://www.linkedin.com/in/krishna-dhakad-84a7661b7) | 54 | 55 | -------------------------------------------------------------------------------- /2023/participants/Nathaniel Soriano/README.md: -------------------------------------------------------------------------------- 1 | ## Introduction 2 | Hello! 3 | 4 | I'm Nathaniel, from the Philippines. I used to be a seafarer. I wanted to transition to tech, went to a bootcamp (yikes!), and now I want to contribute to open source. I know some HTML, CSS, and JavaScript. Decent at Bootstrap. I use, but still not great at Node, Express and MongoDB. React and SQL scare me 🤣 5 | 6 | I chose Wagtail because the checklists are just ✨amazing✨. I skimmed and knew that understanding of Django and of course Wagtail is necessary. I felt like doing GSoC with Wagtail is "achievable". The other organizations, I feel they're so out of my league. 7 | After my day job, I have to learn some Python then Django, then Wagtail. Time is not my friend, but it is better to try than do nothing about it. 8 | 9 | Have a great and productive month ahead everyone! 10 | 11 | Cheers 12 |

13 | ## Socials 14 | | Profile | Link | 15 | | ------------- | ------------- | 16 | | ![github](https://github.com/umangbhalodiya/25000-Premium-svg-icons/blob/main/Bootstrap%20svg%20icons/github.svg) GitHub | [Nathaniel330](https://github.com/Nathaniel330) | 17 | | ![twitter](https://github.com/umangbhalodiya/25000-Premium-svg-icons/blob/main/Bootstrap%20svg%20icons/twitter.svg) Twitter | [twittra]() | 18 | | ![linkedin](https://github.com/umangbhalodiya/25000-Premium-svg-icons/blob/main/Bootstrap%20svg%20icons/linkedin.svg) LinkedIn | [in/nathaniel-soriano](https://www.linkedin.com/in/nathaniel-soriano/) | 19 | | ![Neophyte](https://github.com/umangbhalodiya/25000-Premium-svg-icons/blob/main/Bootstrap%20svg%20icons/person.svg) Website | [Nathaniel Soriano - Portfolio]() | 20 | 21 |

22 | ## Tasks 23 | #### Checklist: Google Summer of Code 24 | 25 | _This is the first checklist for candidates to go through. It’s a good idea to start early, so you can get to know the community and the project._ 26 | 27 | - [x] Watch the official [‘Introduction to GSoC’ video](https://www.youtube.com/watch?v=7jD2tChhrWM&feature=youtu.be). 28 | - [x] Read [Advice for People Applying for GSoC](https://developers.google.com/open-source/gsoc/help/student-advice). 29 | - [x] Read all of Google’s [contributor guide](https://google.github.io/gsocguides/student/) 30 | - [x] Read the official [timeline](https://developers.google.com/open-source/gsoc/timeline) and add the most important dates as reminders on your calendar. 31 | 32 | _You’ve done the hardest bits! Now all that’s left is for you to:_ 33 | 34 | - [x] Introduce yourself on our [Welcome to Wagtail! Introductions](https://github.com/wagtail/gsoc/discussions/1) discussion thread. 35 | 36 | ### Checklist: open source contributions 37 | 38 | _This checklist helps you demonstrate your understanding of how people use GitHub to collaborate._ 39 | 40 | - [x] Read through [How to contribute to open source](https://opensource.guide/how-to-contribute/) 41 | - [x] Read [Open source etiquette](https://developer.mozilla.org/en-US/docs/MDN/Community/Open_source_etiquette) 42 | - [x] Make your first [pull request](https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/creating-a-pull-request) with us! Add your name to the list of participants in [2023/README.md](2023/README.md). 43 | - [x] Clone this repository, then add a new folder inside `2023/` with your name as the folder name. Inside that folder, add a `README.md` file, and copy-paste the introduction you posted earlier. Submit this to our project as a pull request. 44 | - [x] Read through GitHub’s [Markdown formatting documentation](https://docs.github.com/en/get-started/writing-on-github/getting-started-with-writing-and-formatting-on-github/basic-writing-and-formatting-syntax) 45 | - [x] Now make another pull request to your own README file, adding a Markdown table with links to: 46 | - [x] Your GitHub profile 47 | - [x] Your Twitter profile if any 48 | - [ ] Your Mastodon profile if any 49 | - [x] Your LinkedIn profile if any 50 | - [x] Your personal website 51 | - [x] Update your pull request to add a new `## Tasks` section to your participant file, and copy-paste our contributor guide’s checklists into it, marking each item as completed or not according to your progress. 52 | 53 | _For participants already experienced with GitHub and Markdown, feel free to make all of the above changes in a single pull request._ 54 | 55 | To stand out as an applicant, 56 | 57 | - [ ] Help others with their pull requests – spotting steps they might have missed, or suggesting improvements to their pull requests. 58 | - [ ] Demonstrate good awareness of open source etiquette when creating your pull requests (for example, adding an appropriate title and description). 59 | 60 | ### Checklist: interest in learning 61 | 62 | _With this checklist, we expect you to demonstrate an ability to do research and learn new things. All tasks here will require updating your participant file within this `gsoc` repository in the `2023/` folder._ 63 | 64 | - [ ] Create a new `## Research` section in your personal file, with a list of links to the resources you’ve found most useful so far in trying to understand Wagtail as a project and the specific GSoC project idea you’re interested in. 65 | - [ ] Go through our projects under the [wagtail organisation](https://github.com/wagtail) in GitHub. Create a new list with links to repositories or specific issues you would be interested in contributing to during the internship. 66 | - [ ] Write a short blog post describing things you’ve learned recently, and share it with us. The post must be in English, include at least one image, be less than 500 words, and score a Grade 6 or lower on . The post has to be posted on a publicly-available platform (Dev.to, Hashnode, Medium, your own website), and you must also add it as a new section in your personal file in this repository (so we can provide feedback on the contents). 67 | 68 | ### Checklist: Django and Wagtail 69 | 70 | _Here, we expect you to go through two tutorials to demonstrate your understanding of Django and Wagtail. Submit both projects you will have created as a pull request on this `gsoc` repository._ 71 | 72 | - [ ] Go through Django’s [Getting started documentation and tutorial](https://docs.djangoproject.com/en/4.1/intro/), until part 7. 73 | - [ ] Go through Wagtail’s Getting started tutorial: [Your first Wagtail site](https://docs.wagtail.org/en/stable/getting_started/tutorial.html) -------------------------------------------------------------------------------- /2023/participants/Nermeen-Wageh/README.md: -------------------------------------------------------------------------------- 1 | ## Introduction 2 | 3 | Hello everyone! 4 | My name is [Nermeen Wageh](https://github.com/nermeenwageh10), and I am an Egyptian woman I live in Madrid, I studied computer science years ago,I have been away from the workforce for the past three years while on maternity leave, but during that time I have remained dedicated to staying up-to-date with the latest developments in the field of software engineering. I started problem-solving one year ago and solved more than 350 problems on leetcode and taught people programming on LinkedIn and made a group to help them progress quickly on problem-solving and make a personal project to hone my skills and keep my knowledge current. 5 | 6 | Before my maternity leave, I worked as a software engineer at Coderoots for two years ,where I gained extensive experience in Rest APIs,and I am eager to bring my passion for software engineering to GSOC. 7 | 8 | As a newcomer to the world of open-source software, I am thrilled to have been given the opportunity to participate in GSOC with the Wagtail project. The prospect of working alongside talented developers and experienced mentors to create something that will make a positive impact on the world is truly exhilarating. 9 | 10 | With my technical skills in Python, Django, and JavaScript, my keen attention to detail, and my ability to work collaboratively with others, I believe that I can make a valuable contribution to the Wagtail project. I am passionate about learning from experienced mentors, collaborating with other contributors, and making a real difference in the open-source community. 11 | 12 | Participating in Google Summer of Code with Wagtail will provide me with the chance to gain valuable experience, hone my technical skills, and make meaningful contributions to a project that I am passionate about. I am excited to join the Wagtail community, work on challenging projects, and help to make a positive impact in the world of open-source software. 13 | 14 | 15 | Thank you for your time to read this . I am available for at anytime you can reached at [Email](nermeen.wageh.94@gmail.com) or [linkedin](https://www.linkedin.com/in/nermeen-wageh-a53398139/). 16 | 17 | 18 | ## Social Media 19 | 20 | | social media | link | 21 | | ------------ | :------------------------------------------:| 22 | | Github | https://github.com/nermeenwageh10 | 23 | | Linkedin | https://www.linkedin.com/in/nermeen-wageh-a53398139/| 24 | | Leetcode | https://leetcode.com/nermeen_wageh/| 25 | | Youtube | https://www.youtube.com/channel/UCrV50aw4_UrS3yF89aaybJQ| 26 | 27 | ## Tasks 28 | 29 | ### Checklist: Google Summer of Code 30 | 31 | - [x] Watch the official [‘Introduction to GSoC’ video](https://www.youtube.com/watch?v=7jD2tChhrWM&feature=youtu.be). 32 | - [x] Read [Advise for People Applying for GSoC](https://developers.google.com/open-source/gsoc/help/student-advice). 33 | - [x] Read all of Google’s [contributor guide](https://google.github.io/gsocguides/student/) 34 | - [x] Read the official [timeline](https://developers.google.com/open-source/gsoc/timeline) and add the most important dates as reminders on your calendar. 35 | - [x] Introduce yourself on our [Welcome to Wagtail! Introductions](https://github.com/wagtail/gsoc/discussions/1) discussion thread. 36 | 37 | ### Checklist: open source contributions 38 | 39 | - [x] Read through [How to contribute to open source](https://opensource.guide/how-to-contribute/) 40 | - [x] Read [Open source etiquette](https://developer.mozilla.org/en-US/docs/MDN/Community/Open_source_etiquette) 41 | - [x] Make your first [pull request](https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/creating-a-pull-request) with us! Add your name to the list of participants in [2023/README.md](2023/README.md). 42 | - [x] Clone this repository, then add a new folder inside `2023/` with your name as the folder name. Inside that folder, add a `README.md` file, and copy-paste the introduction you posted earlier. Submit this to our project as a pull request. 43 | - [x] Read through GitHub’s [Markdown formatting documentation](https://docs.github.com/en/get-started/writing-on-github/getting-started-with-writing-and-formatting-on-github/basic-writing-and-formatting-syntax) 44 | - [x] Now make another pull request to your own README file, adding a Markdown table with links to: 45 | - [x] Your GitHub profile 46 | - [ ] Your Twitter profile if any 47 | - [ ] Your Mastodown profile if any 48 | - [x] Your LinkedIn profile if any 49 | - [ ] Your personal website 50 | - [x] Update your pull request to add a new `## Tasks` section to your participant file, and copy-paste our contributor guide’s checklists into it, marking each item as completed or not according to your progress. 51 | - [ ] Help others with their pull requests – spotting steps they might have missed, or suggesting improvements to their pull requests. 52 | - [x] Demonstrate good awareness of open source etiquette when creating your pull requests (for example, adding an appropriate title and description). 53 | -------------------------------------------------------------------------------- /2023/participants/Piyush Srivastava/readme.md: -------------------------------------------------------------------------------- 1 | # About Me 2 | Hello! My name is Piyush Srivastava and I am based in UP, India. As a beginner open-source contributor, I am passionate about making meaningful contributions to 3 | open-source projects. I am particularly interested in participating in GSoC with Wagtail because I believe it will provide me with an opportunity to hone my 4 | skills, gain valuable experience, and make a significant impact on a real-world project. 5 | 6 | # Contributions 7 | I have already participated in Hacktoberfest and contributed to more than four open-source projects with coding and documentation. 8 | Through this experience, I better understood how open-source communities work and the importance of collaborating with others to achieve a common goal. 9 | 10 | #End Goal 11 | I am excited to take my knowledge and experience to the next level by participating in GSoC with Wagtail. 12 | My skills and enthusiasm for open source will enable me to make a valuable contribution to the project. 13 | 14 | # Social Links: 15 | LinkedIn: https://www.linkedin.com/in/piyush-srivastava-395841192/ 16 | Github: https://github.com/piyush-sri 17 | 18 | Thank you 19 | -------------------------------------------------------------------------------- /2023/participants/Pratik Nimje/README.md: -------------------------------------------------------------------------------- 1 | Hello everyone, 2 | 3 | My name is Pratik Nimje and I'm thrilled to join the Wagtail Discussion Forum! I am excited to be a part of a community that is dedicated to this powerful content management system. 4 | 5 | I first discovered Wagtail when I was looking for a CMS that would allow me to build complex websites with ease. Since then, I have fallen in love with the simplicity and flexibility of Wagtail, as well as the supportive community that surrounds it. 6 | 7 | In this forum, I hope to share my knowledge and learn from others as we explore the many possibilities that Wagtail offers. Whether you're a seasoned Wagtail developer or just starting out, I believe that this forum will be a great resource for us all. 8 | 9 | Thank you for welcoming me to the Wagtail community, and I look forward to engaging with all of you in discussions about this amazing CMS. 10 | 11 | Best regards, 12 | 13 | Pratik Nimje 14 | -------------------------------------------------------------------------------- /2023/participants/README.md: -------------------------------------------------------------------------------- 1 | # 2023 participants 2 | 3 | Welcome! Add your name to this list, keeping the list in alphabetical order: 4 | 5 | - Abdul Samad Ansari (Sam) 6 | - Abinash Satapathy 7 | - Ahmed Bedeir 8 | - Ahmed Hanoon 9 | - Allen Tran 10 | - Alwin T Varghese 11 | - Aman Gupta 12 | - Aman Pandey 13 | - Amey Shinde 14 | - Bhavya Soni 15 | - Blessey Maria Saju 16 | - Chinonso Ani 17 | - Damilare 18 | - Debapriya Jha 19 | - Debdeep Pal 20 | - Elton Omwega 21 | - Ezad Zamily 22 | - Gaurav Sarkar 23 | - Kliiu 24 | - Krishna Dhakad 25 | - Manish Dhakal 26 | - Nathaniel Soriano 27 | - Mehul Aggarwal 28 | - Piyush Srivastava 29 | - Pratik Nimje 30 | - Priscilla Baah 31 | - Ritik Raj 32 | - Rohit Yadav 33 | - Roshan R 34 | - Sachin Kumar 35 | - Sage Abdullah 36 | - Sangmeshwar Mahajan 37 | - Adama Boubacar Oumarou 38 | - Satvik Vashisht 39 | - Sobhan Bera 40 | - Suyash Singh 41 | - Sudarsan 42 | - Suyash Srivastava 43 | - Thibaud Colas 44 | - Vallabh Tiwari 45 | - Vibhakar Solanki 46 | - Yaseen Wazir 47 | - Yuntao Xie 48 | - Ayoub Mnafeg 49 | - Dharmendra Solanki 50 | - Inaam Khan 51 | -------------------------------------------------------------------------------- /2023/participants/Ritik Raj/README.md: -------------------------------------------------------------------------------- 1 | ## **Introduction** 2 | 3 | Hi everyone ! 👋 4 | 5 | My name is Ritik Raj. I am a third-year undergraduate student in the Indian Institute of Technology Kharagpur. 6 | I am a competitive programmer who is trying to make his way in the open-source field. I have decent knowlege of C++, 7 | Python, and Javascript. I have worked with technologies such as Django, Node, React, and Angular. I am very excited to 8 | join the Wagtail community and I hope to take utmost advantage of this opportunity to learn new something new. 9 | 10 | --- 11 | 12 | 13 | ## **Socials** 14 | 15 | | Social | Link | 16 | | ----------- |---------------------------------------------------------| 17 | | GitHub | [ritikraj26](https://github.com/ritikraj26) | 18 | | Twitter | [__ritik_](https://twitter.com/__ritik_) | 19 | | LinkedIn | [Ritik Raj](https://www.linkedin.com/in/ritikraj26/) | 20 | 21 | --- 22 | 23 | 24 | ## **Tasks** 25 | 26 | ### Checklist: Google Summer of Code 27 | - [x] Watch the official [‘Introduction to GSoC’ video](https://www.youtube.com/watch?v=7jD2tChhrWM&feature=youtu.be). 28 | - [x] Read [Advise for People Applying for GSoC](https://developers.google.com/open-source/gsoc/help/student-advice). 29 | - [x] Read all of Google’s [contributor guide](https://google.github.io/gsocguides/student/) 30 | - [x] Read the official [timeline](https://developers.google.com/open-source/gsoc/timeline) and add the most important dates as reminders on your calendar. 31 | - [x] Introduce yourself on our [Welcome to Wagtail! Introductions](https://github.com/wagtail/gsoc/discussions/1) discussion thread. 32 | 33 | ### Checklist: open source contributions 34 | - [x] Read through [How to contribute to open source](https://opensource.guide/how-to-contribute/) 35 | - [x] Read [Open source etiquette](https://developer.mozilla.org/en-US/docs/MDN/Community/Open_source_etiquette) 36 | - [x] Make your first [pull request](https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/creating-a-pull-request) with us! Add your name to the list of participants in [2023/README.md](2023/README.md). 37 | - [x] Clone this repository, then add a new folder inside `2023/` with your name as the folder name. Inside that folder, add a `README.md` file, and copy-paste the introduction you posted earlier. Submit this to our project as a pull request. 38 | - [x] Read through GitHub’s [Markdown formatting documentation](https://docs.github.com/en/get-started/writing-on-github/getting-started-with-writing-and-formatting-on-github/basic-writing-and-formatting-syntax) 39 | - [x] Now make another pull request to your own README file, adding a Markdown table with links to: 40 | - [x] Your GitHub profile 41 | - [x] Your Twitter profile if any 42 | - [ ] Your Mastodown profile if any 43 | - [x] Your LinkedIn profile if any 44 | - [ ] Your personal website 45 | - [x] Update your pull request to add a new `## Tasks` section to your participant file, and copy-paste our contributor guide’s checklists into it, marking each item as completed or not according to your progress. 46 | - [ ] Help others with their pull requests – spotting steps they might have missed, or suggesting improvements to their pull requests. 47 | - [ ] Demonstrate good awareness of open source etiquette when creating your pull requests (for example, adding an appropriate title and description). 48 | 49 | 50 | ### Checklist: interest in learning 51 | - [ ] Create a new `## Research` section in your personal file, with a list of links to the resources you’ve found most useful so far in trying to understand Wagtail as a project and the specific GSoC project idea you’re interested in. 52 | - [ ] Go through our projects under the [wagtail organisation](https://github.com/wagtail) in GitHub. Create a new list with links to repositories or specific issues you would be interested in contributing to during the internship. 53 | - [ ] Write a short blog post describing things you’ve learned recently, and share it with us. The post must be in English, include at least one image, be less than 500 words, and score a Grade 6 or lower on . The post has to be posted on a publicly-available platform (Dev.to, Hashnode, Medium, your own website), and you must also add it as a new section in your personal file in this repository (so we can provide feedback on the contents). 54 | 55 | 56 | ### Checklist: Django and Wagtail 57 | - [ ] Go through Django’s [Getting started documentation and tutorial](https://docs.djangoproject.com/en/4.1/intro/), until part 7. 58 | - [ ] Go through Wagtail’s Getting started tutorial: [Your first Wagtail site](https://docs.wagtail.org/en/stable/getting_started/tutorial.html) 59 | 60 | 61 | 62 | 63 | -------------------------------------------------------------------------------- /2023/participants/Rohit-Yadav/README.md: -------------------------------------------------------------------------------- 1 | Hello everyone, 2 | I am excited to be a part of this wonderful community of Keploy developers! As a developer myself, I am eager to contribute my skills and knowledge towards the improvement of this amazing platform. 3 | I have been working with Python for several years now, and have experience in web development, API development, and database management. I am confident that I can bring value to this community by contributing to the development of new features and improving the existing ones. 4 | Please let me know if there are any ongoing projects that I can be a part of or if there are any areas in particular that need attention. I am looking forward to collaborating with all of you and making the Keploy platform even better. 5 | Thank you, 6 | -------------------------------------------------------------------------------- /2023/participants/Sudarsan/README.md: -------------------------------------------------------------------------------- 1 | ## Introduction 2 | 3 | Hi Folks :rocket:, 4 | 5 | I'm Sudarsan :blush: from the Indian Institute of Technology Roorkee. I'm really passionate about building web applications using Django Rest Framework and ReactJS, which are some of my favorite tools in my developer toolbox. I'm also really comfortable with Java, JavaScript, and Python, and I'm excited to keep learning and growing as a developer. 6 | 7 | I'm fairly new to the open-source world, but I'm eager to dive in and start contributing to projects that can make a positive impact. That's why I'm really excited about the opportunity to work with Wagtail in the Google Summer of Code program. I think Wagtail is an awesome content management system, and I'm excited to learn more about it and help make it even better. 8 | 9 | Overall, I'm just a curious and motivated developer who loves to tackle new challenges and build cool stuff. Thanks for taking the time to get to know me a bit better...! 10 | 11 | ## Contact me @ 12 | 13 | 14 | | Social | Link | 15 | | ----------- | ------------------------------------------------------------------| 16 | | GitHub | [Sudarsan R Github](https://github.com/fieryfalcon) | 17 | | Twitter | [Sudarsan R Twitter](https://twitter.com/SudarsanR14) | 18 | | LinkedIn | [Sudarsan R LinkedIn](https://www.linkedin.com/in/sudarsan-r-47440924a/) | 19 | 20 | 21 | ## Tasks 22 | 23 | #### Checklist: Google Summer of Code 24 | 25 | This is the first checklist for candidates to go through. It’s a good idea to start early, so you can get to know the community and the project. 26 | 27 | - [x] Watch the official [‘Introduction to GSoC’ video](https://www.youtube.com/watch?v=7jD2tChhrWM&feature=youtu.be). 28 | - [x] Read [Advise for People Applying for GSoC](https://developers.google.com/open-source/gsoc/help/student-advice). 29 | - [x] Read all of Google’s [contributor guide](https://google.github.io/gsocguides/student/) 30 | - [x] Read the official [timeline](https://developers.google.com/open-source/gsoc/timeline) and add the most important dates as reminders on your calendar. 31 | 32 | You’ve done the hardest bits! Now all that’s left is for you to: 33 | 34 | - [x] Introduce yourself on our [Welcome to Wagtail! Introductions](https://github.com/wagtail/gsoc/discussions/1) discussion thread. 35 | : My intro : [Sudarsan's comment](https://github.com/wagtail/gsoc/discussions/1?sort=new#discussioncomment-5379678) 36 | 37 | ### Checklist: open source contributions 38 | 39 | This checklist helps you demonstrate your understanding of how people use GitHub to collaborate. 40 | 41 | - [x] Read through [How to contribute to open source](https://opensource.guide/how-to-contribute/) 42 | - [x] Read [Open source etiquette](https://developer.mozilla.org/en-US/docs/MDN/Community/Open_source_etiquette) 43 | - [x] Make your first [pull request](https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/creating-a-pull-request) with us! Add your name to the list of participants in [2023/README.md](2023/README.md). 44 | - [x] Clone this repository, then add a new folder inside `2023/` with your name as the folder name. Inside that folder, add a `README.md` file, and copy-paste the introduction you posted earlier. Submit this to our project as a pull request. 45 | - [x] Read through GitHub’s [Markdown formatting documentation](https://docs.github.com/en/get-started/writing-on-github/getting-started-with-writing-and-formatting-on-github/basic-writing-and-formatting-syntax) 46 | - [x] Now make another pull request to your own README file, adding a Markdown table with links to: 47 | - [x] Your GitHub profile 48 | - [x] Your Twitter profile if any 49 | - [ ] Your Mastodown profile if any 50 | - [x] Your LinkedIn profile if any 51 | - [ ] Your personal website 52 | - [x] Update your pull request to add a new `## Tasks` section to your participant file, and copy-paste our contributor guide’s checklists into it, marking each item as completed or not according to your progress. 53 | 54 | ### Checklist: interest in learning 55 | - [ ] Create a new `## Research` section in your personal file, with a list of links to the resources you’ve found most useful so far in trying to understand Wagtail as a project and the specific GSoC project idea you’re interested in. 56 | - [ ] Go through our projects under the [wagtail organisation](https://github.com/wagtail) in GitHub. Create a new list with links to repositories or specific issues you would be interested in contributing to during the internship. 57 | - [ ] Write a short blog post describing things you’ve learned recently, and share it with us. The post must be in English, include at least one image, be less than 500 words, and score a Grade 6 or lower on . The post has to be posted on a publicly-available platform (Dev.to, Hashnode, Medium, your own website), and you must also add it as a new section in your personal file in this repository (so we can provide feedback on the contents). 58 | 59 | 60 | ### Checklist: Django and Wagtail 61 | - [x] Go through Django’s [Getting started documentation and tutorial](https://docs.djangoproject.com/en/4.1/intro/), until part 7. 62 | - [x] Go through Wagtail’s Getting started tutorial: [Your first Wagtail site](https://docs.wagtail.org/en/stable/getting_started/tutorial.html) 63 | 64 | 65 | 66 | 67 | 68 | -------------------------------------------------------------------------------- /2023/participants/ahmed-bedeir/README.md: -------------------------------------------------------------------------------- 1 | ## Introduction 2 | 3 | Hello everyone! 👋 4 | My name is [Ahmed Bedeir](https://github.com/AhmedBedeir), and I'm a passionate software engineer based in Egypt. I have a deep appreciation for the power of open-source software, and I'm eager to contribute my skills to the open-source community. 5 | 6 | As a beginner open-source contributor, I'm thrilled to be given the opportunity to participate in GSoC with Wagtail. The chance to work alongside other talented developers and experienced mentors to build something that will have a positive impact on the world is truly exhilarating. 7 | 8 | With my technical skills in Python, Django, and JavaScript, attention to detail, and ability to work in a team, I believe I can make a valuable contribution to the Wagtail project. I'm passionate about learning from experienced mentors, collaborating with other contributors, and making a tangible difference in the open-source community. 9 | 10 | Thank you for taking the time to read my introduction. I look forward to connecting with you all and expanding my knowledge in open-source communities. 11 | If you need help, feel free to message [me](https://www.linkedin.com/in/ahmed-bedeir/)🙌. 12 | 13 | ## Social Media 14 | 15 | | social media | link | 16 | | ------------ | :---------------------------------------: | 17 | | Github | https://github.com/AhmedBedeir | 18 | | Linkedin | https://www.linkedin.com/in/ahmed-bedeir/ | 19 | 20 | ## Tasks 21 | 22 | ### Checklist: Google Summer of Code 23 | 24 | - [x] Watch the official [‘Introduction to GSoC’ video](https://www.youtube.com/watch?v=7jD2tChhrWM&feature=youtu.be). 25 | - [x] Read [Advise for People Applying for GSoC](https://developers.google.com/open-source/gsoc/help/student-advice). 26 | - [x] Read all of Google’s [contributor guide](https://google.github.io/gsocguides/student/) 27 | - [x] Read the official [timeline](https://developers.google.com/open-source/gsoc/timeline) and add the most important dates as reminders on your calendar. 28 | - [x] Introduce yourself on our [Welcome to Wagtail! Introductions](https://github.com/wagtail/gsoc/discussions/1) discussion thread. 29 | 30 | ### Checklist: open source contributions 31 | 32 | - [x] Read through [How to contribute to open source](https://opensource.guide/how-to-contribute/) 33 | - [x] Read [Open source etiquette](https://developer.mozilla.org/en-US/docs/MDN/Community/Open_source_etiquette) 34 | - [x] Make your first [pull request](https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/creating-a-pull-request) with us! Add your name to the list of participants in [2023/README.md](2023/README.md). 35 | - [x] Clone this repository, then add a new folder inside `2023/` with your name as the folder name. Inside that folder, add a `README.md` file, and copy-paste the introduction you posted earlier. Submit this to our project as a pull request. 36 | - [x] Read through GitHub’s [Markdown formatting documentation](https://docs.github.com/en/get-started/writing-on-github/getting-started-with-writing-and-formatting-on-github/basic-writing-and-formatting-syntax) 37 | - [x] Now make another pull request to your own README file, adding a Markdown table with links to: 38 | - [x] Your GitHub profile 39 | - [ ] Your Twitter profile if any 40 | - [ ] Your Mastodown profile if any 41 | - [x] Your LinkedIn profile if any 42 | - [ ] Your personal website 43 | - [x] Update your pull request to add a new `## Tasks` section to your participant file, and copy-paste our contributor guide’s checklists into it, marking each item as completed or not according to your progress. 44 | - [ ] Help others with their pull requests – spotting steps they might have missed, or suggesting improvements to their pull requests. 45 | - [x] Demonstrate good awareness of open source etiquette when creating your pull requests (for example, adding an appropriate title and description). 46 | -------------------------------------------------------------------------------- /2023/participants/aman-gupta/README.md: -------------------------------------------------------------------------------- 1 | 2 | #Introduction 3 | 4 | Hi, I am Aman Gupta. I'm currently a pre-final year DSAI student and a freelancer with a passion for full-stack development. In addition, I'm also the President of my college's Development Club, where I mentor and guide other students on software development and programming. 5 | 6 | Aside from programming, I enjoy playing esports games such as Valorant and lifting weights at the gym. 7 | 8 | I'm particularly interested in contributing to Wagtail for GSoC 2023, as I believe it's a fantastic opportunity for me to learn, grow and make a positive impact in the open-source community. As a full-stack developer, I have a wealth of experience working with technologies such as Django, CSS, JavaScript, and React, which I believe will be very useful in contributing to the Wagtail Project. 9 | 10 | ## Social Media Handles 11 | 12 | * [Mail](00amangpt00@gmail.com) 13 | * [LinkdIn](https://www.linkedin.com/in/aman-gupta-4601391b1/) 14 | * [GitHub](https://github.com/Decoy101) 15 | 16 | ## Tasks 17 | 18 | ### Checklist: Google Summer of Code 19 | 20 | [x] Watch the official [‘Introduction to GSoC’ video](https://www.youtube.com/watch?v=7jD2tChhrWM&feature=youtu.be). 21 | [x] Read [Advise for People Applying for GSoC.](https://developers.google.com/open-source/gsoc/help/student-advice) 22 | [x] Read all of Google’s [contributor guide](https://google.github.io/gsocguides/student/) 23 | [x] Read the official [timeline](https://developers.google.com/open-source/gsoc/timeline) and add the most important dates as reminders on your calendar. 24 | [x] Introduce yourself on our Welcome to Wagtail! Introductions discussion thread. 25 | 26 | ### Checklist: open source contributions 27 | [x] Read through [How to contribute to open source](https://opensource.guide/how-to-contribute/) 28 | [x] Read [Open source etiqutte](https://developer.mozilla.org/en-US/docs/MDN/Community/Open_source_etiquette) 29 | [x] Clone this repository, then add a new folder inside 2023/ with your name as the folder name. Inside that folder, add a README.md file, and copy-paste the introduction you posted earlier. Submit this to our project as a pull request. 30 | [x] Make your first pull request with us! Add your name to the list of the participants in [2023/README.md](https://github.com/Decoy101/gsoc/blob/main/2023/README.md) 31 | [x] Read through [GitHub’s Markdown formatting documentation](https://docs.github.com/en/get-started/writing-on-github/getting-started-with-writing-and-formatting-on-github/basic-writing-and-formatting-syntax) 32 | [x] Now make another pull request to your own README file, adding a Markdown table with links to: 33 | [x] Your GitHub profile 34 | [ ] Your Twitter profile if any 35 | [x] Your LinkedIn profile if any 36 | [ ] Your personal website 37 | [x] Update your pull request to add a new `##Tasks` section to your participant file, and copy-paste our contributor guide’s checklists into it, marking each item as completed or not according to your progress. 38 | 39 | ### Checklist: interest in learning 40 | 41 | [ ] Create a new `##Research` section in your personal file, with a list of links to the resources you’ve found most useful so far in trying to understand Wagtail as a project and the specific GSoC project idea you’re interested in. 42 | [ ] Go through our projects under the [wagtail organisation](https://github.com/wagtail) in GitHub. Create a new list with links to repositories or specific issues you would be interested in contributing to during the internship. 43 | [ ] Write a short blog post describing things you’ve learned recently, and share it with us. The post must be in English, include at least one image, be less than 500 words, and score a Grade 6 or lower on [https://hemingwayapp.com/](https://hemingwayapp.com/). The post has to be posted on a publicly-available platform (Dev.to, Hashnode, Medium, your own website), and you must also add it as a new section in your personal file in this repository (so we can provide feedback on the contents). 44 | 45 | ### Checklist: Django and Wagtail 46 | 47 | [x] Go through Django’s [Getting started documentation and tutorial](https://docs.djangoproject.com/en/4.1/intro/), until part 7. 48 | [x] Go through Wagtail’s Getting started tutorial: [Your first Wagtail site](https://docs.wagtail.org/en/stable/getting_started/tutorial.html) 49 | 50 | ## Research 51 | -------------------------------------------------------------------------------- /2023/participants/aman_pandey/2023 - Shortcut.lnk: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wagtail/gsoc/6c60ebc0067b8a552d714ce3ab27a348fda61c56/2023/participants/aman_pandey/2023 - Shortcut.lnk -------------------------------------------------------------------------------- /2023/participants/aman_pandey/README.md: -------------------------------------------------------------------------------- 1 | ## Introduction 2 | Hello everyone!! this Aman Pandey also known as **salty-ivy**, third-year computer science and engineering student, have been backend and fullstack developer 3 | in few small startups, stacks of my experience involves **django, django-restframework, rails, hotwired-stimulus (thanks to wagtail), neo4j graph database (cypher query language),react**. newbie enthusiast over open source web based projects, if you don't find me alive on github you can probably find me on `lichess` and `chess.com` or i would be out playing badminton ;-). 4 | 5 | ## Social-media links 6 | 7 | | social media | link | 8 | |--------------|:-----:| 9 | | Gihub | https://github.com/salty-ivy | 10 | | linkdin | https://www.linkedin.com/in/aman-pandey-06a600217/ | 11 | 12 | ### Some additional links (recent works) 13 | 1. junior backend developer at [dropd](https://www.dropd.network/) 14 | 2. opne source project [spreadVibe](https://github.com/salty-ivy/SpreadVibe) 15 | 3. contributions at wagtail [contributions/commits](https://github.com/wagtail/wagtail/commits?author=salty-ivy) 16 | 4. contributions at other open source projects (greenberry: a single statement programming language built on python)[https://github.com/Abdur-rahmaanJ/greenberry/issues] 17 | 18 | ## Tasks 19 | 20 | - [x] Watch the official [‘Introduction to GSoC’ video](https://www.youtube.com/watch?v=7jD2tChhrWM&feature=youtu.be). 21 | - [x] Read [Advise for People Applying for GSoC](https://developers.google.com/open-source/gsoc/help/student-advice). 22 | - [x] Read all of Google’s [contributor guide](https://google.github.io/gsocguides/student/) 23 | - [x] Read the official [timeline](https://developers.google.com/open-source/gsoc/timeline) and add the most important dates as reminders on your calendar. 24 | - [x] Introduce yourself on our [Welcome to Wagtail! Introductions](https://github.com/wagtail/gsoc/discussions/1) discussion thread. 25 | - [x] Read through [How to contribute to open source](https://opensource.guide/how-to-contribute/) 26 | - [x] Read [Open source etiquette](https://developer.mozilla.org/en-US/docs/MDN/Community/Open_source_etiquette) 27 | - [x] Make your first [pull request](https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/creating-a-pull-request) with us! Add your name to the list of participants in [2023/README.md](2023/README.md). 28 | - [x] Clone this repository, then add a new folder inside `2023/` with your name as the folder name. Inside that folder, add a `README.md` file, and copy-paste the introduction you posted earlier. Submit this to our project as a pull request. 29 | - [x] Read through GitHub’s [Markdown formatting documentation](https://docs.github.com/en/get-started/writing-on-github/getting-started-with-writing-and-formatting-on-github/basic-writing-and-formatting-syntax) 30 | - [x] Now make another pull request to your own README file, adding a Markdown table with links to: 31 | - [x] Your GitHub profile 32 | - [ ] Your Twitter profile if any 33 | - [ ] Your Mastodown profile if any 34 | - [x] Your LinkedIn profile if any 35 | - [ ] Your personal website 36 | - [x] Update your pull request to add a new `## Tasks` section to your participant file, and copy-paste our contributor guide’s checklists into it, marking each item as completed or not according to your progress. 37 | - [x] Help others with their pull requests – spotting steps they might have missed, or suggesting improvements to their pull requests. 38 | - [x] Demonstrate good awareness of open source etiquette when creating your pull requests (for example, adding an appropriate title and description). 39 | - [x] Create a new `## Research` section in your personal file, with a list of links to the resources you’ve found most useful so far in trying to understand Wagtail as a project and the specific GSoC project idea you’re interested in. 40 | - [x] Go through our projects under the [wagtail organisation](https://github.com/wagtail) in GitHub. Create a new list with links to repositories or specific issues you would be interested in contributing to during the internship. 41 | - [x] Write a short blog post describing things you’ve learned recently, and share it with us. The post must be in English, include at least one image, be less than 500 words, and score a Grade 6 or lower on . The post has to be posted on a publicly-available platform (Dev.to, Hashnode, Medium, your own website), and you must also add it as a new section in your personal file in this repository (so we can provide feedback on the contents). 42 | - [x] Go through Django’s [Getting started documentation and tutorial](https://docs.djangoproject.com/en/4.1/intro/), until part 7. 43 | - [x] Go through Wagtail’s Getting started tutorial: [Your first Wagtail site](https://docs.wagtail.org/en/stable/getting_started/tutorial.html) 44 | 45 | ## Research 46 | 47 | 48 | | Resuource | link | 49 | |--------------|:-----:| 50 | | main wagtail documentation | https://docs.wagtail.org/en/stable/ | 51 | | wagtail github repositories | https://github.com/wagtail | 52 | | django documentation | https://docs.djangoproject.com/en/4.1/ | 53 | | django github repository | https://github.com/django/django | 54 | | celery | https://docs.celeryq.dev/en/stable/django/first-steps-with-django.html | 55 | | celery-django | https://pypi.org/project/django-celery/ | 56 | | rq | https://github.com/rq/rq | 57 | | Drupal's background_process module | https://www.drupal.org/project/background_process | 58 | 59 | ### Interested GSoC project 60 | [RFC 72: Background workers](https://github.com/wagtail/wagtail/wiki/Google-Summer-of-Code-2023#rfc-72-background-workers) 61 | 62 | ### Related wagtail repositories i would be working on 63 | 1. [Main wagtail repository](https://github.com/wagtail/wagtail) 64 | 2. [Bakerydemo](https://github.com/wagtail/wagtail-bakery) 65 | 66 | ## Blog 67 | https://saltyivylearning.hashnode.dev/hidden-gems-i-acquired-from-open-source-projects 68 | -------------------------------------------------------------------------------- /2023/participants/amey-shinde/mysite/manage.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python 2 | """Django's command-line utility for administrative tasks.""" 3 | import os 4 | import sys 5 | 6 | 7 | def main(): 8 | """Run administrative tasks.""" 9 | os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'mysite.settings') 10 | try: 11 | from django.core.management import execute_from_command_line 12 | except ImportError as exc: 13 | raise ImportError( 14 | "Couldn't import Django. Are you sure it's installed and " 15 | "available on your PYTHONPATH environment variable? Did you " 16 | "forget to activate a virtual environment?" 17 | ) from exc 18 | execute_from_command_line(sys.argv) 19 | 20 | 21 | if __name__ == '__main__': 22 | main() 23 | -------------------------------------------------------------------------------- /2023/participants/amey-shinde/mysite/mysite/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wagtail/gsoc/6c60ebc0067b8a552d714ce3ab27a348fda61c56/2023/participants/amey-shinde/mysite/mysite/__init__.py -------------------------------------------------------------------------------- /2023/participants/amey-shinde/mysite/mysite/asgi.py: -------------------------------------------------------------------------------- 1 | """ 2 | ASGI config for mysite project. 3 | 4 | It exposes the ASGI callable as a module-level variable named ``application``. 5 | 6 | For more information on this file, see 7 | https://docs.djangoproject.com/en/dev/howto/deployment/asgi/ 8 | """ 9 | 10 | import os 11 | 12 | from django.core.asgi import get_asgi_application 13 | 14 | os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'mysite.settings') 15 | 16 | application = get_asgi_application() 17 | -------------------------------------------------------------------------------- /2023/participants/amey-shinde/mysite/mysite/settings.py: -------------------------------------------------------------------------------- 1 | """ 2 | Django settings for mysite project. 3 | 4 | Generated by 'django-admin startproject' using Django 5.0.dev20230318130541. 5 | 6 | For more information on this file, see 7 | https://docs.djangoproject.com/en/dev/topics/settings/ 8 | 9 | For the full list of settings and their values, see 10 | https://docs.djangoproject.com/en/dev/ref/settings/ 11 | """ 12 | 13 | from pathlib import Path 14 | 15 | # Build paths inside the project like this: BASE_DIR / 'subdir'. 16 | BASE_DIR = Path(__file__).resolve().parent.parent 17 | 18 | 19 | # Quick-start development settings - unsuitable for production 20 | # See https://docs.djangoproject.com/en/dev/howto/deployment/checklist/ 21 | 22 | # SECURITY WARNING: keep the secret key used in production secret! 23 | SECRET_KEY = 'django-insecure-=cn^m=(s5wz=5b-=p1t(sf&parbuep9kif=iv0gwnz7yav$x#^' 24 | 25 | # SECURITY WARNING: don't run with debug turned on in production! 26 | DEBUG = True 27 | 28 | ALLOWED_HOSTS = [] 29 | 30 | 31 | # Application definition 32 | 33 | INSTALLED_APPS = [ 34 | 'polls.apps.PollsConfig', 35 | 'django.contrib.admin', 36 | 'django.contrib.auth', 37 | 'django.contrib.contenttypes', 38 | 'django.contrib.sessions', 39 | 'django.contrib.messages', 40 | 'django.contrib.staticfiles', 41 | ] 42 | 43 | MIDDLEWARE = [ 44 | 'django.middleware.security.SecurityMiddleware', 45 | 'django.contrib.sessions.middleware.SessionMiddleware', 46 | 'django.middleware.common.CommonMiddleware', 47 | 'django.middleware.csrf.CsrfViewMiddleware', 48 | 'django.contrib.auth.middleware.AuthenticationMiddleware', 49 | 'django.contrib.messages.middleware.MessageMiddleware', 50 | 'django.middleware.clickjacking.XFrameOptionsMiddleware', 51 | ] 52 | 53 | ROOT_URLCONF = 'mysite.urls' 54 | 55 | TEMPLATES = [ 56 | { 57 | 'BACKEND': 'django.template.backends.django.DjangoTemplates', 58 | 'DIRS': [BASE_DIR / 'templates'], 59 | 'APP_DIRS': True, 60 | 'OPTIONS': { 61 | 'context_processors': [ 62 | 'django.template.context_processors.debug', 63 | 'django.template.context_processors.request', 64 | 'django.contrib.auth.context_processors.auth', 65 | 'django.contrib.messages.context_processors.messages', 66 | ], 67 | }, 68 | }, 69 | ] 70 | 71 | WSGI_APPLICATION = 'mysite.wsgi.application' 72 | 73 | 74 | # Database 75 | # https://docs.djangoproject.com/en/dev/ref/settings/#databases 76 | 77 | DATABASES = { 78 | 'default': { 79 | 'ENGINE': 'django.db.backends.sqlite3', 80 | 'NAME': BASE_DIR / 'db.sqlite3', 81 | } 82 | } 83 | 84 | 85 | # Password validation 86 | # https://docs.djangoproject.com/en/dev/ref/settings/#auth-password-validators 87 | 88 | AUTH_PASSWORD_VALIDATORS = [ 89 | { 90 | 'NAME': 'django.contrib.auth.password_validation.UserAttributeSimilarityValidator', 91 | }, 92 | { 93 | 'NAME': 'django.contrib.auth.password_validation.MinimumLengthValidator', 94 | }, 95 | { 96 | 'NAME': 'django.contrib.auth.password_validation.CommonPasswordValidator', 97 | }, 98 | { 99 | 'NAME': 'django.contrib.auth.password_validation.NumericPasswordValidator', 100 | }, 101 | ] 102 | 103 | 104 | # Internationalization 105 | # https://docs.djangoproject.com/en/dev/topics/i18n/ 106 | 107 | LANGUAGE_CODE = 'en-us' 108 | 109 | TIME_ZONE = 'America/Chicago' 110 | 111 | USE_I18N = True 112 | 113 | USE_TZ = True 114 | 115 | 116 | # Static files (CSS, JavaScript, Images) 117 | # https://docs.djangoproject.com/en/dev/howto/static-files/ 118 | 119 | STATIC_URL = 'static/' 120 | 121 | # Default primary key field type 122 | # https://docs.djangoproject.com/en/dev/ref/settings/#default-auto-field 123 | 124 | DEFAULT_AUTO_FIELD = 'django.db.models.BigAutoField' 125 | -------------------------------------------------------------------------------- /2023/participants/amey-shinde/mysite/mysite/urls.py: -------------------------------------------------------------------------------- 1 | """ 2 | URL configuration for mysite project. 3 | 4 | The `urlpatterns` list routes URLs to views. For more information please see: 5 | https://docs.djangoproject.com/en/dev/topics/http/urls/ 6 | Examples: 7 | Function views 8 | 1. Add an import: from my_app import views 9 | 2. Add a URL to urlpatterns: path('', views.home, name='home') 10 | Class-based views 11 | 1. Add an import: from other_app.views import Home 12 | 2. Add a URL to urlpatterns: path('', Home.as_view(), name='home') 13 | Including another URLconf 14 | 1. Import the include() function: from django.urls import include, path 15 | 2. Add a URL to urlpatterns: path('blog/', include('blog.urls')) 16 | """ 17 | from django.contrib import admin 18 | from django.urls import path,include 19 | 20 | urlpatterns = [ 21 | path('polls/',include('polls.urls')), 22 | path('admin/', admin.site.urls), 23 | ] 24 | -------------------------------------------------------------------------------- /2023/participants/amey-shinde/mysite/mysite/wsgi.py: -------------------------------------------------------------------------------- 1 | """ 2 | WSGI config for mysite project. 3 | 4 | It exposes the WSGI callable as a module-level variable named ``application``. 5 | 6 | For more information on this file, see 7 | https://docs.djangoproject.com/en/dev/howto/deployment/wsgi/ 8 | """ 9 | 10 | import os 11 | 12 | from django.core.wsgi import get_wsgi_application 13 | 14 | os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'mysite.settings') 15 | 16 | application = get_wsgi_application() 17 | -------------------------------------------------------------------------------- /2023/participants/amey-shinde/mysite/polls/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wagtail/gsoc/6c60ebc0067b8a552d714ce3ab27a348fda61c56/2023/participants/amey-shinde/mysite/polls/__init__.py -------------------------------------------------------------------------------- /2023/participants/amey-shinde/mysite/polls/admin.py: -------------------------------------------------------------------------------- 1 | from django.contrib import admin 2 | 3 | from .models import Choice, Question 4 | 5 | 6 | class ChoiceInline(admin.TabularInline): 7 | model = Choice 8 | extra = 3 9 | 10 | 11 | class QuestionAdmin(admin.ModelAdmin): 12 | fieldsets = [ 13 | (None, {'fields': ['question_text']}), 14 | ('Date information', {'fields': ['pub_date']}), 15 | ] 16 | inlines = [ChoiceInline] 17 | list_display = ('question_text', 'pub_date', 'was_published_recently') 18 | list_filter = ['pub_date'] 19 | search_fields = ['question_text'] 20 | 21 | 22 | admin.site.register(Question, QuestionAdmin) 23 | -------------------------------------------------------------------------------- /2023/participants/amey-shinde/mysite/polls/apps.py: -------------------------------------------------------------------------------- 1 | from django.apps import AppConfig 2 | 3 | 4 | class PollsConfig(AppConfig): 5 | default_auto_field = 'django.db.models.BigAutoField' 6 | name = 'polls' 7 | -------------------------------------------------------------------------------- /2023/participants/amey-shinde/mysite/polls/migrations/0001_initial.py: -------------------------------------------------------------------------------- 1 | # Generated by Django 5.0.dev20230318130541 on 2023-03-19 14:46 2 | 3 | from django.db import migrations, models 4 | import django.db.models.deletion 5 | 6 | 7 | class Migration(migrations.Migration): 8 | 9 | initial = True 10 | 11 | dependencies = [ 12 | ] 13 | 14 | operations = [ 15 | migrations.CreateModel( 16 | name='Question', 17 | fields=[ 18 | ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), 19 | ('question_text', models.CharField(max_length=200)), 20 | ('pub_date', models.DateTimeField(verbose_name='date published')), 21 | ], 22 | ), 23 | migrations.CreateModel( 24 | name='Choice', 25 | fields=[ 26 | ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), 27 | ('choice_text', models.CharField(max_length=200)), 28 | ('votes', models.IntegerField(default=0)), 29 | ('question', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='polls.question')), 30 | ], 31 | ), 32 | ] 33 | -------------------------------------------------------------------------------- /2023/participants/amey-shinde/mysite/polls/migrations/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wagtail/gsoc/6c60ebc0067b8a552d714ce3ab27a348fda61c56/2023/participants/amey-shinde/mysite/polls/migrations/__init__.py -------------------------------------------------------------------------------- /2023/participants/amey-shinde/mysite/polls/models.py: -------------------------------------------------------------------------------- 1 | from django.db import models 2 | from django.utils import timezone 3 | from django.contrib import admin 4 | import datetime 5 | 6 | 7 | class Question(models.Model): 8 | question_text = models.CharField(max_length=200) 9 | pub_date = models.DateTimeField('date published') 10 | 11 | def __str__(self): 12 | return self.question_text 13 | 14 | @admin.display( 15 | boolean=True, 16 | ordering='pub_date', 17 | description='Published recently?', 18 | ) 19 | def was_published_recently(self): 20 | now = timezone.now() 21 | return now - datetime.timedelta(days=1) <= self.pub_date <= now 22 | 23 | 24 | class Choice(models.Model): 25 | question = models.ForeignKey(Question, on_delete=models.CASCADE) 26 | choice_text = models.CharField(max_length=200) 27 | votes = models.IntegerField(default=0) 28 | 29 | def __str__(self): 30 | return self.choice_text 31 | -------------------------------------------------------------------------------- /2023/participants/amey-shinde/mysite/polls/static/polls/images/background.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wagtail/gsoc/6c60ebc0067b8a552d714ce3ab27a348fda61c56/2023/participants/amey-shinde/mysite/polls/static/polls/images/background.png -------------------------------------------------------------------------------- /2023/participants/amey-shinde/mysite/polls/static/polls/style.css: -------------------------------------------------------------------------------- 1 | li a { 2 | color: green; 3 | } 4 | 5 | body { 6 | background: white url("images/background.png") no-repeat; 7 | } -------------------------------------------------------------------------------- /2023/participants/amey-shinde/mysite/polls/templates/admin/base_site.html: -------------------------------------------------------------------------------- 1 | {% extends "admin/base.html" %} 2 | 3 | {% block title %}{% if subtitle %}{{ subtitle }} | {% endif %}{{ title }} | {{ site_title|default:_('Django site admin') }}{% endblock %} 4 | 5 | {% block branding %} 6 |

{{ site_header|default:_('Django administration') }}

7 | {% if user.is_anonymous %} 8 | {% include "admin/color_theme_toggle.html" %} 9 | {% endif %} 10 | {% endblock %} 11 | 12 | {% block nav-global %}{% endblock %} 13 | -------------------------------------------------------------------------------- /2023/participants/amey-shinde/mysite/polls/templates/polls/detail.html: -------------------------------------------------------------------------------- 1 |
2 | {% csrf_token %} 3 |
4 | 5 |

{{ question.question_text }}

6 |
7 | {% if error_message %}

{{ error_message }}

{% endif %} 8 | {% for choice in question.choice_set.all %} 9 | 10 |
11 | {% endfor %} 12 |
13 | 14 |
-------------------------------------------------------------------------------- /2023/participants/amey-shinde/mysite/polls/templates/polls/index.html: -------------------------------------------------------------------------------- 1 | {% load static %} 2 | 3 | 4 | 5 | {% if latest_question_list %} 6 | 11 | {% else %} 12 |

No polls are available.

13 | {% endif %} -------------------------------------------------------------------------------- /2023/participants/amey-shinde/mysite/polls/templates/polls/results.html: -------------------------------------------------------------------------------- 1 |

{{ question.question_text }}

2 | 3 |
    4 | {% for choice in question.choice_set.all %} 5 |
  • {{ choice.choice_text }} -- {{ choice.votes }} vote{{ choice.votes|pluralize }}
  • 6 | {% endfor %} 7 |
8 | 9 | Vote again? -------------------------------------------------------------------------------- /2023/participants/amey-shinde/mysite/polls/tests.py: -------------------------------------------------------------------------------- 1 | from django.test import TestCase 2 | 3 | # Create your tests here. 4 | import datetime 5 | 6 | from django.test import TestCase 7 | from django.utils import timezone 8 | 9 | from .models import Question 10 | from django.urls import reverse 11 | 12 | 13 | class QuestionModelTests(TestCase): 14 | 15 | def test_was_published_recently_with_future_question(self): 16 | """ 17 | was_published_recently() returns False for questions whose pub_date 18 | is in the future. 19 | """ 20 | time = timezone.now() + datetime.timedelta(days=30) 21 | future_question = Question(pub_date=time) 22 | self.assertIs(future_question.was_published_recently(), False) 23 | 24 | def test_was_published_recently_with_old_question(self): 25 | """ 26 | was_published_recently() returns False for questions whose pub_date 27 | is older than 1 day. 28 | """ 29 | time = timezone.now() - datetime.timedelta(days=1, seconds=1) 30 | old_question = Question(pub_date=time) 31 | self.assertIs(old_question.was_published_recently(), False) 32 | 33 | def test_was_published_recently_with_recent_question(self): 34 | """ 35 | was_published_recently() returns True for questions whose pub_date 36 | is within the last day. 37 | """ 38 | time = timezone.now() - datetime.timedelta(hours=23, minutes=59, seconds=59) 39 | recent_question = Question(pub_date=time) 40 | self.assertIs(recent_question.was_published_recently(), True) 41 | 42 | def create_question(question_text, days): 43 | """ 44 | Create a question with the given `question_text` and published the 45 | given number of `days` offset to now (negative for questions published 46 | in the past, positive for questions that have yet to be published). 47 | """ 48 | time = timezone.now() + datetime.timedelta(days=days) 49 | return Question.objects.create(question_text=question_text, pub_date=time) 50 | 51 | 52 | class QuestionIndexViewTests(TestCase): 53 | def test_no_questions(self): 54 | """ 55 | If no questions exist, an appropriate message is displayed. 56 | """ 57 | response = self.client.get(reverse('polls:index')) 58 | self.assertEqual(response.status_code, 200) 59 | self.assertContains(response, "No polls are available.") 60 | self.assertQuerysetEqual(response.context['latest_question_list'], []) 61 | 62 | def test_past_question(self): 63 | """ 64 | Questions with a pub_date in the past are displayed on the 65 | index page. 66 | """ 67 | question = create_question(question_text="Past question.", days=-30) 68 | response = self.client.get(reverse('polls:index')) 69 | self.assertQuerysetEqual( 70 | response.context['latest_question_list'], 71 | [question], 72 | ) 73 | 74 | def test_future_question(self): 75 | """ 76 | Questions with a pub_date in the future aren't displayed on 77 | the index page. 78 | """ 79 | create_question(question_text="Future question.", days=30) 80 | response = self.client.get(reverse('polls:index')) 81 | self.assertContains(response, "No polls are available.") 82 | self.assertQuerysetEqual(response.context['latest_question_list'], []) 83 | 84 | def test_future_question_and_past_question(self): 85 | """ 86 | Even if both past and future questions exist, only past questions 87 | are displayed. 88 | """ 89 | question = create_question(question_text="Past question.", days=-30) 90 | create_question(question_text="Future question.", days=30) 91 | response = self.client.get(reverse('polls:index')) 92 | self.assertQuerysetEqual( 93 | response.context['latest_question_list'], 94 | [question], 95 | ) 96 | 97 | def test_two_past_questions(self): 98 | """ 99 | The questions index page may display multiple questions. 100 | """ 101 | question1 = create_question(question_text="Past question 1.", days=-30) 102 | question2 = create_question(question_text="Past question 2.", days=-5) 103 | response = self.client.get(reverse('polls:index')) 104 | self.assertQuerysetEqual( 105 | response.context['latest_question_list'], 106 | [question2, question1], 107 | ) 108 | 109 | class QuestionDetailViewTests(TestCase): 110 | def test_future_question(self): 111 | """ 112 | The detail view of a question with a pub_date in the future 113 | returns a 404 not found. 114 | """ 115 | future_question = create_question(question_text='Future question.', days=5) 116 | url = reverse('polls:detail', args=(future_question.id,)) 117 | response = self.client.get(url) 118 | self.assertEqual(response.status_code, 404) 119 | 120 | def test_past_question(self): 121 | """ 122 | The detail view of a question with a pub_date in the past 123 | displays the question's text. 124 | """ 125 | past_question = create_question(question_text='Past Question.', days=-5) 126 | url = reverse('polls:detail', args=(past_question.id,)) 127 | response = self.client.get(url) 128 | self.assertContains(response, past_question.question_text) -------------------------------------------------------------------------------- /2023/participants/amey-shinde/mysite/polls/urls.py: -------------------------------------------------------------------------------- 1 | from django.urls import path 2 | from django.shortcuts import get_object_or_404, render 3 | from django.http import HttpResponse, HttpResponseRedirect 4 | from django.urls import reverse 5 | 6 | from .models import Choice, Question 7 | from . import views 8 | 9 | app_name = 'polls' 10 | urlpatterns = [ 11 | path('', views.IndexView.as_view(), name='index'), 12 | path('/', views.DetailView.as_view(), name='detail'), 13 | path('/results/', views.ResultsView.as_view(), name='results'), 14 | path('/vote/', views.vote, name='vote'), 15 | ] 16 | 17 | def vote(request, question_id): 18 | question = get_object_or_404(Question, pk=question_id) 19 | try: 20 | selected_choice = question.choice_set.get(pk=request.POST['choice']) 21 | except (KeyError, Choice.DoesNotExist): 22 | # Redisplay the question voting form. 23 | return render(request, 'polls/detail.html', { 24 | 'question': question, 25 | 'error_message': "You didn't select a choice.", 26 | }) 27 | else: 28 | selected_choice.votes += 1 29 | selected_choice.save() 30 | # Always return an HttpResponseRedirect after successfully dealing 31 | # with POST data. This prevents data from being posted twice if a 32 | # user hits the Back button. 33 | return HttpResponseRedirect(reverse('polls:results', args=(question.id,))) -------------------------------------------------------------------------------- /2023/participants/amey-shinde/mysite/polls/views.py: -------------------------------------------------------------------------------- 1 | from django.http import HttpResponseRedirect 2 | from django.shortcuts import get_object_or_404, render 3 | from django.urls import reverse 4 | from django.views import generic 5 | from django.http import HttpResponse 6 | from .models import Choice, Question 7 | from django.utils import timezone 8 | 9 | 10 | class IndexView(generic.ListView): 11 | template_name = 'polls/index.html' 12 | context_object_name = 'latest_question_list' 13 | 14 | def get_queryset(self): 15 | """Return the last five published questions.""" 16 | return Question.objects.filter( 17 | pub_date__lte=timezone.now() 18 | ).order_by('-pub_date')[:5] 19 | 20 | 21 | class DetailView(generic.DetailView): 22 | def get_queryset(self): 23 | """ 24 | Excludes any questions that aren't published yet. 25 | """ 26 | return Question.objects.filter(pub_date__lte=timezone.now()) 27 | 28 | 29 | class ResultsView(generic.DetailView): 30 | model = Question 31 | template_name = 'polls/results.html' 32 | 33 | 34 | def vote(request, question_id): 35 | return HttpResponse("You're voting on question %s." % question_id) 36 | -------------------------------------------------------------------------------- /2023/participants/amey-shinde/wagtail_new/mysite/.dockerignore: -------------------------------------------------------------------------------- 1 | # Django project 2 | /media/ 3 | /static/ 4 | *.sqlite3 5 | 6 | # Python and others 7 | __pycache__ 8 | *.pyc 9 | .DS_Store 10 | *.swp 11 | /venv/ 12 | /tmp/ 13 | /.vagrant/ 14 | /Vagrantfile.local 15 | node_modules/ 16 | /npm-debug.log 17 | /.idea/ 18 | .vscode 19 | coverage 20 | .python-version 21 | 22 | # Distribution / packaging 23 | .Python 24 | env/ 25 | build/ 26 | develop-eggs/ 27 | dist/ 28 | downloads/ 29 | eggs/ 30 | .eggs/ 31 | lib/ 32 | lib64/ 33 | parts/ 34 | sdist/ 35 | var/ 36 | wheels/ 37 | *.egg-info/ 38 | .installed.cfg 39 | *.egg 40 | -------------------------------------------------------------------------------- /2023/participants/amey-shinde/wagtail_new/mysite/Dockerfile: -------------------------------------------------------------------------------- 1 | # Use an official Python runtime based on Debian 10 "buster" as a parent image. 2 | FROM python:3.8.1-slim-buster 3 | 4 | # Add user that will be used in the container. 5 | RUN useradd wagtail 6 | 7 | # Port used by this container to serve HTTP. 8 | EXPOSE 8000 9 | 10 | # Set environment variables. 11 | # 1. Force Python stdout and stderr streams to be unbuffered. 12 | # 2. Set PORT variable that is used by Gunicorn. This should match "EXPOSE" 13 | # command. 14 | ENV PYTHONUNBUFFERED=1 \ 15 | PORT=8000 16 | 17 | # Install system packages required by Wagtail and Django. 18 | RUN apt-get update --yes --quiet && apt-get install --yes --quiet --no-install-recommends \ 19 | build-essential \ 20 | libpq-dev \ 21 | libmariadbclient-dev \ 22 | libjpeg62-turbo-dev \ 23 | zlib1g-dev \ 24 | libwebp-dev \ 25 | && rm -rf /var/lib/apt/lists/* 26 | 27 | # Install the application server. 28 | RUN pip install "gunicorn==20.0.4" 29 | 30 | # Install the project requirements. 31 | COPY requirements.txt / 32 | RUN pip install -r /requirements.txt 33 | 34 | # Use /app folder as a directory where the source code is stored. 35 | WORKDIR /app 36 | 37 | # Set this directory to be owned by the "wagtail" user. This Wagtail project 38 | # uses SQLite, the folder needs to be owned by the user that 39 | # will be writing to the database file. 40 | RUN chown wagtail:wagtail /app 41 | 42 | # Copy the source code of the project into the container. 43 | COPY --chown=wagtail:wagtail . . 44 | 45 | # Use user "wagtail" to run the build commands below and the server itself. 46 | USER wagtail 47 | 48 | # Collect static files. 49 | RUN python manage.py collectstatic --noinput --clear 50 | 51 | # Runtime command that executes when "docker run" is called, it does the 52 | # following: 53 | # 1. Migrate the database. 54 | # 2. Start the application server. 55 | # WARNING: 56 | # Migrating database at the same time as starting the server IS NOT THE BEST 57 | # PRACTICE. The database should be migrated manually or using the release 58 | # phase facilities of your hosting platform. This is used only so the 59 | # Wagtail instance can be started with a simple "docker run" command. 60 | CMD set -xe; python manage.py migrate --noinput; gunicorn mysite.wsgi:application 61 | -------------------------------------------------------------------------------- /2023/participants/amey-shinde/wagtail_new/mysite/blog/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wagtail/gsoc/6c60ebc0067b8a552d714ce3ab27a348fda61c56/2023/participants/amey-shinde/wagtail_new/mysite/blog/__init__.py -------------------------------------------------------------------------------- /2023/participants/amey-shinde/wagtail_new/mysite/blog/admin.py: -------------------------------------------------------------------------------- 1 | from django.contrib import admin 2 | 3 | # Register your models here. 4 | -------------------------------------------------------------------------------- /2023/participants/amey-shinde/wagtail_new/mysite/blog/apps.py: -------------------------------------------------------------------------------- 1 | from django.apps import AppConfig 2 | 3 | 4 | class BlogConfig(AppConfig): 5 | default_auto_field = 'django.db.models.BigAutoField' 6 | name = 'blog' 7 | -------------------------------------------------------------------------------- /2023/participants/amey-shinde/wagtail_new/mysite/blog/migrations/0001_initial.py: -------------------------------------------------------------------------------- 1 | # Generated by Django 4.1.7 on 2023-03-19 16:57 2 | 3 | from django.db import migrations, models 4 | import django.db.models.deletion 5 | import wagtail.fields 6 | 7 | 8 | class Migration(migrations.Migration): 9 | 10 | initial = True 11 | 12 | dependencies = [ 13 | ('wagtailcore', '0083_workflowcontenttype'), 14 | ] 15 | 16 | operations = [ 17 | migrations.CreateModel( 18 | name='BlogIndexPage', 19 | fields=[ 20 | ('page_ptr', models.OneToOneField(auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, serialize=False, to='wagtailcore.page')), 21 | ('intro', wagtail.fields.RichTextField(blank=True)), 22 | ], 23 | options={ 24 | 'abstract': False, 25 | }, 26 | bases=('wagtailcore.page',), 27 | ), 28 | ] 29 | -------------------------------------------------------------------------------- /2023/participants/amey-shinde/wagtail_new/mysite/blog/migrations/0002_blogpage.py: -------------------------------------------------------------------------------- 1 | # Generated by Django 4.1.7 on 2023-03-19 17:02 2 | 3 | from django.db import migrations, models 4 | import django.db.models.deletion 5 | import wagtail.fields 6 | 7 | 8 | class Migration(migrations.Migration): 9 | 10 | dependencies = [ 11 | ('wagtailcore', '0083_workflowcontenttype'), 12 | ('blog', '0001_initial'), 13 | ] 14 | 15 | operations = [ 16 | migrations.CreateModel( 17 | name='BlogPage', 18 | fields=[ 19 | ('page_ptr', models.OneToOneField(auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, serialize=False, to='wagtailcore.page')), 20 | ('date', models.DateField(verbose_name='Post date')), 21 | ('intro', models.CharField(max_length=250)), 22 | ('body', wagtail.fields.RichTextField(blank=True)), 23 | ], 24 | options={ 25 | 'abstract': False, 26 | }, 27 | bases=('wagtailcore.page',), 28 | ), 29 | ] 30 | -------------------------------------------------------------------------------- /2023/participants/amey-shinde/wagtail_new/mysite/blog/migrations/0003_blogpagegalleryimage.py: -------------------------------------------------------------------------------- 1 | # Generated by Django 4.1.7 on 2023-03-19 17:09 2 | 3 | from django.db import migrations, models 4 | import django.db.models.deletion 5 | import modelcluster.fields 6 | 7 | 8 | class Migration(migrations.Migration): 9 | 10 | dependencies = [ 11 | ('wagtailimages', '0025_alter_image_file_alter_rendition_file'), 12 | ('blog', '0002_blogpage'), 13 | ] 14 | 15 | operations = [ 16 | migrations.CreateModel( 17 | name='BlogPageGalleryImage', 18 | fields=[ 19 | ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), 20 | ('sort_order', models.IntegerField(blank=True, editable=False, null=True)), 21 | ('caption', models.CharField(blank=True, max_length=250)), 22 | ('image', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='+', to='wagtailimages.image')), 23 | ('page', modelcluster.fields.ParentalKey(on_delete=django.db.models.deletion.CASCADE, related_name='gallery_images', to='blog.blogpage')), 24 | ], 25 | options={ 26 | 'ordering': ['sort_order'], 27 | 'abstract': False, 28 | }, 29 | ), 30 | ] 31 | -------------------------------------------------------------------------------- /2023/participants/amey-shinde/wagtail_new/mysite/blog/migrations/0004_blogpagetag_blogpage_tags.py: -------------------------------------------------------------------------------- 1 | # Generated by Django 4.1.7 on 2023-03-19 17:21 2 | 3 | from django.db import migrations, models 4 | import django.db.models.deletion 5 | import modelcluster.contrib.taggit 6 | import modelcluster.fields 7 | 8 | 9 | class Migration(migrations.Migration): 10 | 11 | dependencies = [ 12 | ('taggit', '0005_auto_20220424_2025'), 13 | ('blog', '0003_blogpagegalleryimage'), 14 | ] 15 | 16 | operations = [ 17 | migrations.CreateModel( 18 | name='BlogPageTag', 19 | fields=[ 20 | ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), 21 | ('content_object', modelcluster.fields.ParentalKey(on_delete=django.db.models.deletion.CASCADE, related_name='tagged_items', to='blog.blogpage')), 22 | ('tag', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='%(app_label)s_%(class)s_items', to='taggit.tag')), 23 | ], 24 | options={ 25 | 'abstract': False, 26 | }, 27 | ), 28 | migrations.AddField( 29 | model_name='blogpage', 30 | name='tags', 31 | field=modelcluster.contrib.taggit.ClusterTaggableManager(blank=True, help_text='A comma-separated list of tags.', through='blog.BlogPageTag', to='taggit.Tag', verbose_name='Tags'), 32 | ), 33 | ] 34 | -------------------------------------------------------------------------------- /2023/participants/amey-shinde/wagtail_new/mysite/blog/migrations/0005_blogtagindexpage_blogcategory.py: -------------------------------------------------------------------------------- 1 | # Generated by Django 4.1.7 on 2023-03-19 17:28 2 | 3 | from django.db import migrations, models 4 | import django.db.models.deletion 5 | 6 | 7 | class Migration(migrations.Migration): 8 | 9 | dependencies = [ 10 | ('wagtailimages', '0025_alter_image_file_alter_rendition_file'), 11 | ('wagtailcore', '0083_workflowcontenttype'), 12 | ('blog', '0004_blogpagetag_blogpage_tags'), 13 | ] 14 | 15 | operations = [ 16 | migrations.CreateModel( 17 | name='BlogTagIndexPage', 18 | fields=[ 19 | ('page_ptr', models.OneToOneField(auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, serialize=False, to='wagtailcore.page')), 20 | ], 21 | options={ 22 | 'abstract': False, 23 | }, 24 | bases=('wagtailcore.page',), 25 | ), 26 | migrations.CreateModel( 27 | name='BlogCategory', 28 | fields=[ 29 | ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), 30 | ('name', models.CharField(max_length=255)), 31 | ('icon', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='+', to='wagtailimages.image')), 32 | ], 33 | options={ 34 | 'verbose_name_plural': 'blog categories', 35 | }, 36 | ), 37 | ] 38 | -------------------------------------------------------------------------------- /2023/participants/amey-shinde/wagtail_new/mysite/blog/migrations/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wagtail/gsoc/6c60ebc0067b8a552d714ce3ab27a348fda61c56/2023/participants/amey-shinde/wagtail_new/mysite/blog/migrations/__init__.py -------------------------------------------------------------------------------- /2023/participants/amey-shinde/wagtail_new/mysite/blog/models.py: -------------------------------------------------------------------------------- 1 | from wagtail.snippets.models import register_snippet 2 | from wagtail.models import Page 3 | from wagtail.fields import RichTextField 4 | from wagtail.admin.panels import FieldPanel 5 | 6 | from django.db import models 7 | from django import forms 8 | from django.db import models 9 | 10 | from modelcluster.fields import ParentalKey, ParentalManyToManyField 11 | from modelcluster.contrib.taggit import ClusterTaggableManager 12 | from taggit.models import TaggedItemBase 13 | from wagtail.models import Page 14 | from wagtail.fields import RichTextField 15 | from wagtail.admin.panels import FieldPanel 16 | from wagtail.search import index 17 | 18 | from modelcluster.fields import ParentalKey 19 | 20 | from wagtail.models import Page, Orderable 21 | from wagtail.fields import RichTextField 22 | from wagtail.admin.panels import FieldPanel, InlinePanel 23 | from wagtail.search import index 24 | from django.db import models 25 | 26 | # New imports added for ClusterTaggableManager, TaggedItemBase, MultiFieldPanel 27 | 28 | from modelcluster.fields import ParentalKey 29 | from modelcluster.contrib.taggit import ClusterTaggableManager 30 | from taggit.models import TaggedItemBase 31 | 32 | from wagtail.models import Page, Orderable 33 | from wagtail.fields import RichTextField 34 | from wagtail.admin.panels import FieldPanel, InlinePanel, MultiFieldPanel 35 | from wagtail.search import index 36 | 37 | 38 | class BlogIndexPage(Page): 39 | intro = RichTextField(blank=True) 40 | 41 | def get_context(self, request): 42 | # Update context to include only published posts, ordered by reverse-chron 43 | context = super().get_context(request) 44 | blogpages = self.get_children().live().order_by('-first_published_at') 45 | context['blogpages'] = blogpages 46 | return context 47 | 48 | 49 | class BlogPageTag(TaggedItemBase): 50 | content_object = ParentalKey( 51 | 'BlogPage', 52 | related_name='tagged_items', 53 | on_delete=models.CASCADE 54 | ) 55 | 56 | 57 | class BlogPage(Page): 58 | date = models.DateField("Post date") 59 | intro = models.CharField(max_length=250) 60 | body = RichTextField(blank=True) 61 | tags = ClusterTaggableManager(through=BlogPageTag, blank=True) 62 | categories = ParentalManyToManyField('blog.BlogCategory', blank=True) 63 | 64 | def main_image(self): 65 | gallery_item = self.gallery_images.first() 66 | if gallery_item: 67 | return gallery_item.image 68 | else: 69 | return None 70 | 71 | search_fields = Page.search_fields + [ 72 | index.SearchField('intro'), 73 | index.SearchField('body'), 74 | ] 75 | 76 | content_panels = Page.content_panels + [ 77 | MultiFieldPanel([ 78 | FieldPanel('date'), 79 | FieldPanel('tags'), 80 | FieldPanel('categories', widget=forms.CheckboxSelectMultiple), 81 | ], heading="Blog information"), 82 | FieldPanel('intro'), 83 | FieldPanel('body'), 84 | InlinePanel('gallery_images', label="Gallery images"), 85 | ] 86 | 87 | 88 | class BlogPageGalleryImage(Orderable): 89 | page = ParentalKey(BlogPage, on_delete=models.CASCADE, 90 | related_name='gallery_images') 91 | image = models.ForeignKey( 92 | 'wagtailimages.Image', on_delete=models.CASCADE, related_name='+' 93 | ) 94 | caption = models.CharField(blank=True, max_length=250) 95 | 96 | panels = [ 97 | FieldPanel('image'), 98 | FieldPanel('caption'), 99 | ] 100 | 101 | 102 | class BlogTagIndexPage(Page): 103 | 104 | def get_context(self, request): 105 | 106 | # Filter by tag 107 | tag = request.GET.get('tag') 108 | blogpages = BlogPage.objects.filter(tags__name=tag) 109 | 110 | # Update template context 111 | context = super().get_context(request) 112 | context['blogpages'] = blogpages 113 | return context 114 | 115 | 116 | @register_snippet 117 | class BlogCategory(models.Model): 118 | name = models.CharField(max_length=255) 119 | icon = models.ForeignKey( 120 | 'wagtailimages.Image', null=True, blank=True, 121 | on_delete=models.SET_NULL, related_name='+' 122 | ) 123 | 124 | panels = [ 125 | FieldPanel('name'), 126 | FieldPanel('icon'), 127 | ] 128 | 129 | def __str__(self): 130 | return self.name 131 | 132 | class Meta: 133 | verbose_name_plural = 'blog categories' 134 | -------------------------------------------------------------------------------- /2023/participants/amey-shinde/wagtail_new/mysite/blog/templates/blog/blog_index_page.html: -------------------------------------------------------------------------------- 1 | {% extends "base.html" %} 2 | 3 | {% load wagtailcore_tags wagtailimages_tags%} 4 | 5 | {% block body_class %}template-blogindexpage{% endblock %} 6 | 7 | {% block content %} 8 |

{{ page.title }}

9 | 10 |
{{ page.intro|richtext }}
11 | 12 | {% for post in blogpages %} 13 | {% with post=post.specific %} 14 |

{{ post.title }}

15 | 16 | {% with post.main_image as main_image %} 17 | {% if main_image %}{% image main_image fill-160x100 %}{% endif %} 18 | {% endwith %} 19 | 20 |

{{ post.intro }}

21 | {{ post.body|richtext }} 22 | {% endwith %} 23 | {% endfor %} 24 | 25 | {% endblock %} -------------------------------------------------------------------------------- /2023/participants/amey-shinde/wagtail_new/mysite/blog/templates/blog/blog_page.html: -------------------------------------------------------------------------------- 1 | {% extends "base.html" %} 2 | 3 | {% load wagtailcore_tags wagtailimages_tags %} 4 | 5 | {% block body_class %}template-blogpage{% endblock %} 6 | 7 | {% block content %} 8 |

{{ page.title }}

9 |

{{ page.date }}

10 | 11 |

{{ page.title }}

12 |

{{ page.date }}

13 | 14 | {% with categories=page.categories.all %} 15 | {% if categories %} 16 |

Posted in:

17 |
    18 | {% for category in categories %} 19 |
  • 20 | {% image category.icon fill-32x32 style="vertical-align: middle" %} 21 | {{ category.name }} 22 |
  • 23 | {% endfor %} 24 |
25 | {% endif %} 26 | {% endwith %} 27 | {% endblock %} -------------------------------------------------------------------------------- /2023/participants/amey-shinde/wagtail_new/mysite/blog/templates/blog/blog_tag_index_page.html: -------------------------------------------------------------------------------- 1 | {% extends "base.html" %} 2 | {% load wagtailcore_tags %} 3 | 4 | {% block content %} 5 | 6 | {% if request.GET.tag %} 7 |

Showing pages tagged "{{ request.GET.tag }}"

8 | {% endif %} 9 | 10 | {% for blogpage in blogpages %} 11 | 12 |

13 | {{ blogpage.title }}
14 | Revised: {{ blogpage.latest_revision_created_at }}
15 | {% if blogpage.author %} 16 |

By {{ blogpage.author.profile }}

17 | {% endif %} 18 |

19 | 20 | {% empty %} 21 | No pages found with that tag. 22 | {% endfor %} 23 | 24 | {% endblock %} -------------------------------------------------------------------------------- /2023/participants/amey-shinde/wagtail_new/mysite/blog/tests.py: -------------------------------------------------------------------------------- 1 | from django.test import TestCase 2 | 3 | # Create your tests here. 4 | -------------------------------------------------------------------------------- /2023/participants/amey-shinde/wagtail_new/mysite/blog/views.py: -------------------------------------------------------------------------------- 1 | from django.shortcuts import render 2 | 3 | # Create your views here. 4 | -------------------------------------------------------------------------------- /2023/participants/amey-shinde/wagtail_new/mysite/home/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wagtail/gsoc/6c60ebc0067b8a552d714ce3ab27a348fda61c56/2023/participants/amey-shinde/wagtail_new/mysite/home/__init__.py -------------------------------------------------------------------------------- /2023/participants/amey-shinde/wagtail_new/mysite/home/migrations/0001_initial.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | from django.db import migrations, models 3 | 4 | 5 | class Migration(migrations.Migration): 6 | 7 | dependencies = [ 8 | ("wagtailcore", "0040_page_draft_title"), 9 | ] 10 | 11 | operations = [ 12 | migrations.CreateModel( 13 | name="HomePage", 14 | fields=[ 15 | ( 16 | "page_ptr", 17 | models.OneToOneField( 18 | on_delete=models.CASCADE, 19 | parent_link=True, 20 | auto_created=True, 21 | primary_key=True, 22 | serialize=False, 23 | to="wagtailcore.Page", 24 | ), 25 | ), 26 | ], 27 | options={ 28 | "abstract": False, 29 | }, 30 | bases=("wagtailcore.page",), 31 | ), 32 | ] 33 | -------------------------------------------------------------------------------- /2023/participants/amey-shinde/wagtail_new/mysite/home/migrations/0002_create_homepage.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | from django.db import migrations 3 | 4 | 5 | def create_homepage(apps, schema_editor): 6 | # Get models 7 | ContentType = apps.get_model("contenttypes.ContentType") 8 | Page = apps.get_model("wagtailcore.Page") 9 | Site = apps.get_model("wagtailcore.Site") 10 | HomePage = apps.get_model("home.HomePage") 11 | 12 | # Delete the default homepage 13 | # If migration is run multiple times, it may have already been deleted 14 | Page.objects.filter(id=2).delete() 15 | 16 | # Create content type for homepage model 17 | homepage_content_type, __ = ContentType.objects.get_or_create( 18 | model="homepage", app_label="home" 19 | ) 20 | 21 | # Create a new homepage 22 | homepage = HomePage.objects.create( 23 | title="Home", 24 | draft_title="Home", 25 | slug="home", 26 | content_type=homepage_content_type, 27 | path="00010001", 28 | depth=2, 29 | numchild=0, 30 | url_path="/home/", 31 | ) 32 | 33 | # Create a site with the new homepage set as the root 34 | Site.objects.create(hostname="localhost", root_page=homepage, is_default_site=True) 35 | 36 | 37 | def remove_homepage(apps, schema_editor): 38 | # Get models 39 | ContentType = apps.get_model("contenttypes.ContentType") 40 | HomePage = apps.get_model("home.HomePage") 41 | 42 | # Delete the default homepage 43 | # Page and Site objects CASCADE 44 | HomePage.objects.filter(slug="home", depth=2).delete() 45 | 46 | # Delete content type for homepage model 47 | ContentType.objects.filter(model="homepage", app_label="home").delete() 48 | 49 | 50 | class Migration(migrations.Migration): 51 | 52 | run_before = [ 53 | ("wagtailcore", "0053_locale_model"), 54 | ] 55 | 56 | dependencies = [ 57 | ("home", "0001_initial"), 58 | ] 59 | 60 | operations = [ 61 | migrations.RunPython(create_homepage, remove_homepage), 62 | ] 63 | -------------------------------------------------------------------------------- /2023/participants/amey-shinde/wagtail_new/mysite/home/migrations/0003_homepage_body.py: -------------------------------------------------------------------------------- 1 | # Generated by Django 4.1.7 on 2023-03-19 16:50 2 | 3 | from django.db import migrations 4 | import wagtail.fields 5 | 6 | 7 | class Migration(migrations.Migration): 8 | 9 | dependencies = [ 10 | ('home', '0002_create_homepage'), 11 | ] 12 | 13 | operations = [ 14 | migrations.AddField( 15 | model_name='homepage', 16 | name='body', 17 | field=wagtail.fields.RichTextField(blank=True), 18 | ), 19 | ] 20 | -------------------------------------------------------------------------------- /2023/participants/amey-shinde/wagtail_new/mysite/home/migrations/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wagtail/gsoc/6c60ebc0067b8a552d714ce3ab27a348fda61c56/2023/participants/amey-shinde/wagtail_new/mysite/home/migrations/__init__.py -------------------------------------------------------------------------------- /2023/participants/amey-shinde/wagtail_new/mysite/home/models.py: -------------------------------------------------------------------------------- 1 | from django.db import models 2 | 3 | from wagtail.models import Page 4 | from wagtail.fields import RichTextField 5 | from wagtail.admin.panels import FieldPanel 6 | 7 | 8 | class HomePage(Page): 9 | body = RichTextField(blank=True) 10 | 11 | content_panels = Page.content_panels + [ 12 | FieldPanel('body'), 13 | ] 14 | -------------------------------------------------------------------------------- /2023/participants/amey-shinde/wagtail_new/mysite/home/static/css/welcome_page.css: -------------------------------------------------------------------------------- 1 | html { 2 | box-sizing: border-box; 3 | } 4 | 5 | *, 6 | *:before, 7 | *:after { 8 | box-sizing: inherit; 9 | } 10 | 11 | body { 12 | max-width: 960px; 13 | min-height: 100vh; 14 | margin: 0 auto; 15 | padding: 0 15px; 16 | color: #231f20; 17 | font-family: 'Helvetica Neue', 'Segoe UI', Arial, sans-serif; 18 | line-height: 1.25; 19 | } 20 | 21 | a { 22 | background-color: transparent; 23 | color: #308282; 24 | text-decoration: underline; 25 | } 26 | 27 | a:hover { 28 | color: #ea1b10; 29 | } 30 | 31 | h1, 32 | h2, 33 | h3, 34 | h4, 35 | h5, 36 | p, 37 | ul { 38 | padding: 0; 39 | margin: 0; 40 | font-weight: 400; 41 | } 42 | 43 | svg:not(:root) { 44 | overflow: hidden; 45 | } 46 | 47 | .header { 48 | display: flex; 49 | justify-content: space-between; 50 | align-items: center; 51 | padding-top: 20px; 52 | padding-bottom: 10px; 53 | border-bottom: 1px solid #e6e6e6; 54 | } 55 | 56 | .logo { 57 | width: 150px; 58 | margin-inline-end: 20px; 59 | } 60 | 61 | .logo a { 62 | display: block; 63 | } 64 | 65 | .figure-logo { 66 | max-width: 150px; 67 | max-height: 55.1px; 68 | } 69 | 70 | .release-notes { 71 | font-size: 14px; 72 | } 73 | 74 | .main { 75 | padding: 40px 0; 76 | margin: 0 auto; 77 | text-align: center; 78 | } 79 | 80 | .figure-space { 81 | max-width: 265px; 82 | } 83 | 84 | @keyframes pos { 85 | 0%, 100% { 86 | transform: rotate(-6deg); 87 | } 88 | 50% { 89 | transform: rotate(6deg); 90 | } 91 | } 92 | 93 | .egg { 94 | fill: #43b1b0; 95 | animation: pos 3s ease infinite; 96 | transform: translateY(50px); 97 | transform-origin: 50% 80%; 98 | } 99 | 100 | .main-text { 101 | max-width: 400px; 102 | margin: 5px auto; 103 | } 104 | 105 | .main-text h1 { 106 | font-size: 22px; 107 | } 108 | 109 | .main-text p { 110 | margin: 15px auto 0; 111 | } 112 | 113 | .footer { 114 | display: flex; 115 | flex-wrap: wrap; 116 | justify-content: space-between; 117 | border-top: 1px solid #e6e6e6; 118 | padding: 10px; 119 | } 120 | 121 | .option { 122 | display: block; 123 | padding: 10px 10px 10px 34px; 124 | position: relative; 125 | text-decoration: none; 126 | } 127 | 128 | .option svg { 129 | width: 24px; 130 | height: 24px; 131 | fill: gray; 132 | border: 1px solid #d9d9d9; 133 | padding: 5px; 134 | border-radius: 100%; 135 | top: 10px; 136 | inset-inline-start: 0; 137 | position: absolute; 138 | } 139 | 140 | .option h2 { 141 | font-size: 19px; 142 | text-decoration: underline; 143 | } 144 | 145 | .option p { 146 | padding-top: 3px; 147 | color: #231f20; 148 | font-size: 15px; 149 | font-weight: 300; 150 | } 151 | 152 | @media (max-width: 996px) { 153 | body { 154 | max-width: 780px; 155 | } 156 | } 157 | 158 | @media (max-width: 767px) { 159 | .option { 160 | flex: 0 0 50%; 161 | } 162 | } 163 | 164 | @media (max-width: 599px) { 165 | .main { 166 | padding: 20px 0; 167 | } 168 | 169 | .figure-space { 170 | max-width: 200px; 171 | } 172 | 173 | .footer { 174 | display: block; 175 | width: 300px; 176 | margin: 0 auto; 177 | } 178 | } 179 | 180 | @media (max-width: 360px) { 181 | .header-link { 182 | max-width: 100px; 183 | } 184 | } 185 | -------------------------------------------------------------------------------- /2023/participants/amey-shinde/wagtail_new/mysite/home/templates/home/home_page.html: -------------------------------------------------------------------------------- 1 | {% extends "base.html" %} 2 | 3 | {% load wagtailcore_tags %} 4 | 5 | {% block body_class %}template-homepage{% endblock %} 6 | 7 | {% block content %} 8 | {{ page.body|richtext }} 9 | {% endblock %} -------------------------------------------------------------------------------- /2023/participants/amey-shinde/wagtail_new/mysite/manage.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python 2 | import os 3 | import sys 4 | 5 | if __name__ == "__main__": 6 | os.environ.setdefault("DJANGO_SETTINGS_MODULE", "mysite.settings.dev") 7 | 8 | from django.core.management import execute_from_command_line 9 | 10 | execute_from_command_line(sys.argv) 11 | -------------------------------------------------------------------------------- /2023/participants/amey-shinde/wagtail_new/mysite/media/images/V1.2e16d0ba.fill-160x100.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wagtail/gsoc/6c60ebc0067b8a552d714ce3ab27a348fda61c56/2023/participants/amey-shinde/wagtail_new/mysite/media/images/V1.2e16d0ba.fill-160x100.png -------------------------------------------------------------------------------- /2023/participants/amey-shinde/wagtail_new/mysite/media/images/V1.2e16d0ba.fill-320x240.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wagtail/gsoc/6c60ebc0067b8a552d714ce3ab27a348fda61c56/2023/participants/amey-shinde/wagtail_new/mysite/media/images/V1.2e16d0ba.fill-320x240.png -------------------------------------------------------------------------------- /2023/participants/amey-shinde/wagtail_new/mysite/media/images/V1.max-165x165.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wagtail/gsoc/6c60ebc0067b8a552d714ce3ab27a348fda61c56/2023/participants/amey-shinde/wagtail_new/mysite/media/images/V1.max-165x165.png -------------------------------------------------------------------------------- /2023/participants/amey-shinde/wagtail_new/mysite/media/original_images/V1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wagtail/gsoc/6c60ebc0067b8a552d714ce3ab27a348fda61c56/2023/participants/amey-shinde/wagtail_new/mysite/media/original_images/V1.png -------------------------------------------------------------------------------- /2023/participants/amey-shinde/wagtail_new/mysite/mysite/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wagtail/gsoc/6c60ebc0067b8a552d714ce3ab27a348fda61c56/2023/participants/amey-shinde/wagtail_new/mysite/mysite/__init__.py -------------------------------------------------------------------------------- /2023/participants/amey-shinde/wagtail_new/mysite/mysite/settings/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wagtail/gsoc/6c60ebc0067b8a552d714ce3ab27a348fda61c56/2023/participants/amey-shinde/wagtail_new/mysite/mysite/settings/__init__.py -------------------------------------------------------------------------------- /2023/participants/amey-shinde/wagtail_new/mysite/mysite/settings/base.py: -------------------------------------------------------------------------------- 1 | """ 2 | Django settings for mysite project. 3 | 4 | Generated by 'django-admin startproject' using Django 4.1.7. 5 | 6 | For more information on this file, see 7 | https://docs.djangoproject.com/en/4.1/topics/settings/ 8 | 9 | For the full list of settings and their values, see 10 | https://docs.djangoproject.com/en/4.1/ref/settings/ 11 | """ 12 | 13 | # Build paths inside the project like this: os.path.join(BASE_DIR, ...) 14 | import os 15 | 16 | PROJECT_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) 17 | BASE_DIR = os.path.dirname(PROJECT_DIR) 18 | 19 | 20 | # Quick-start development settings - unsuitable for production 21 | # See https://docs.djangoproject.com/en/4.1/howto/deployment/checklist/ 22 | 23 | 24 | # Application definition 25 | 26 | INSTALLED_APPS = [ 27 | "home", 28 | "search", 29 | "wagtail.contrib.forms", 30 | "wagtail.contrib.redirects", 31 | "wagtail.embeds", 32 | "wagtail.sites", 33 | "wagtail.users", 34 | "wagtail.snippets", 35 | "wagtail.documents", 36 | "wagtail.images", 37 | "wagtail.search", 38 | "wagtail.admin", 39 | "wagtail", 40 | "modelcluster", 41 | "taggit", 42 | "django.contrib.admin", 43 | "django.contrib.auth", 44 | "django.contrib.contenttypes", 45 | "django.contrib.sessions", 46 | "django.contrib.messages", 47 | "django.contrib.staticfiles", 48 | "blog", 49 | ] 50 | 51 | MIDDLEWARE = [ 52 | "django.contrib.sessions.middleware.SessionMiddleware", 53 | "django.middleware.common.CommonMiddleware", 54 | "django.middleware.csrf.CsrfViewMiddleware", 55 | "django.contrib.auth.middleware.AuthenticationMiddleware", 56 | "django.contrib.messages.middleware.MessageMiddleware", 57 | "django.middleware.clickjacking.XFrameOptionsMiddleware", 58 | "django.middleware.security.SecurityMiddleware", 59 | "wagtail.contrib.redirects.middleware.RedirectMiddleware", 60 | ] 61 | 62 | ROOT_URLCONF = "mysite.urls" 63 | 64 | TEMPLATES = [ 65 | { 66 | "BACKEND": "django.template.backends.django.DjangoTemplates", 67 | "DIRS": [ 68 | os.path.join(PROJECT_DIR, "templates"), 69 | ], 70 | "APP_DIRS": True, 71 | "OPTIONS": { 72 | "context_processors": [ 73 | "django.template.context_processors.debug", 74 | "django.template.context_processors.request", 75 | "django.contrib.auth.context_processors.auth", 76 | "django.contrib.messages.context_processors.messages", 77 | ], 78 | }, 79 | }, 80 | ] 81 | 82 | WSGI_APPLICATION = "mysite.wsgi.application" 83 | 84 | 85 | # Database 86 | # https://docs.djangoproject.com/en/4.1/ref/settings/#databases 87 | 88 | DATABASES = { 89 | "default": { 90 | "ENGINE": "django.db.backends.sqlite3", 91 | "NAME": os.path.join(BASE_DIR, "db.sqlite3"), 92 | } 93 | } 94 | 95 | 96 | # Password validation 97 | # https://docs.djangoproject.com/en/4.1/ref/settings/#auth-password-validators 98 | 99 | AUTH_PASSWORD_VALIDATORS = [ 100 | { 101 | "NAME": "django.contrib.auth.password_validation.UserAttributeSimilarityValidator", 102 | }, 103 | { 104 | "NAME": "django.contrib.auth.password_validation.MinimumLengthValidator", 105 | }, 106 | { 107 | "NAME": "django.contrib.auth.password_validation.CommonPasswordValidator", 108 | }, 109 | { 110 | "NAME": "django.contrib.auth.password_validation.NumericPasswordValidator", 111 | }, 112 | ] 113 | 114 | 115 | # Internationalization 116 | # https://docs.djangoproject.com/en/4.1/topics/i18n/ 117 | 118 | LANGUAGE_CODE = "en-us" 119 | 120 | TIME_ZONE = "UTC" 121 | 122 | USE_I18N = True 123 | 124 | USE_L10N = True 125 | 126 | USE_TZ = True 127 | 128 | 129 | # Static files (CSS, JavaScript, Images) 130 | # https://docs.djangoproject.com/en/4.1/howto/static-files/ 131 | 132 | STATICFILES_FINDERS = [ 133 | "django.contrib.staticfiles.finders.FileSystemFinder", 134 | "django.contrib.staticfiles.finders.AppDirectoriesFinder", 135 | ] 136 | 137 | STATICFILES_DIRS = [ 138 | os.path.join(PROJECT_DIR, "static"), 139 | ] 140 | 141 | # ManifestStaticFilesStorage is recommended in production, to prevent outdated 142 | # JavaScript / CSS assets being served from cache (e.g. after a Wagtail upgrade). 143 | # See https://docs.djangoproject.com/en/4.1/ref/contrib/staticfiles/#manifeststaticfilesstorage 144 | STATICFILES_STORAGE = "django.contrib.staticfiles.storage.ManifestStaticFilesStorage" 145 | 146 | STATIC_ROOT = os.path.join(BASE_DIR, "static") 147 | STATIC_URL = "/static/" 148 | 149 | MEDIA_ROOT = os.path.join(BASE_DIR, "media") 150 | MEDIA_URL = "/media/" 151 | 152 | 153 | # Wagtail settings 154 | 155 | WAGTAIL_SITE_NAME = "mysite" 156 | 157 | # Search 158 | # https://docs.wagtail.org/en/stable/topics/search/backends.html 159 | WAGTAILSEARCH_BACKENDS = { 160 | "default": { 161 | "BACKEND": "wagtail.search.backends.database", 162 | } 163 | } 164 | 165 | # Base URL to use when referring to full URLs within the Wagtail admin backend - 166 | # e.g. in notification emails. Don't include '/admin' or a trailing slash 167 | WAGTAILADMIN_BASE_URL = "http://example.com" 168 | -------------------------------------------------------------------------------- /2023/participants/amey-shinde/wagtail_new/mysite/mysite/settings/dev.py: -------------------------------------------------------------------------------- 1 | from .base import * 2 | 3 | # SECURITY WARNING: don't run with debug turned on in production! 4 | DEBUG = True 5 | 6 | # SECURITY WARNING: keep the secret key used in production secret! 7 | SECRET_KEY = "django-insecure-lz+)5ip1&8&ay2j%@clzl&azo15ade*9jf!b$e#&)d7wo6$m&$" 8 | 9 | # SECURITY WARNING: define the correct hosts in production! 10 | ALLOWED_HOSTS = ["*"] 11 | 12 | EMAIL_BACKEND = "django.core.mail.backends.console.EmailBackend" 13 | 14 | 15 | try: 16 | from .local import * 17 | except ImportError: 18 | pass 19 | -------------------------------------------------------------------------------- /2023/participants/amey-shinde/wagtail_new/mysite/mysite/settings/production.py: -------------------------------------------------------------------------------- 1 | from .base import * 2 | 3 | DEBUG = False 4 | 5 | try: 6 | from .local import * 7 | except ImportError: 8 | pass 9 | -------------------------------------------------------------------------------- /2023/participants/amey-shinde/wagtail_new/mysite/mysite/static/css/mysite.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wagtail/gsoc/6c60ebc0067b8a552d714ce3ab27a348fda61c56/2023/participants/amey-shinde/wagtail_new/mysite/mysite/static/css/mysite.css -------------------------------------------------------------------------------- /2023/participants/amey-shinde/wagtail_new/mysite/mysite/static/js/mysite.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wagtail/gsoc/6c60ebc0067b8a552d714ce3ab27a348fda61c56/2023/participants/amey-shinde/wagtail_new/mysite/mysite/static/js/mysite.js -------------------------------------------------------------------------------- /2023/participants/amey-shinde/wagtail_new/mysite/mysite/templates/404.html: -------------------------------------------------------------------------------- 1 | {% extends "base.html" %} 2 | 3 | {% block title %}Page not found{% endblock %} 4 | 5 | {% block body_class %}template-404{% endblock %} 6 | 7 | {% block content %} 8 |

Page not found

9 | 10 |

Sorry, this page could not be found.

11 | {% endblock %} 12 | -------------------------------------------------------------------------------- /2023/participants/amey-shinde/wagtail_new/mysite/mysite/templates/500.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Internal server error 6 | 7 | 8 | 9 |

Internal server error

10 | 11 |

Sorry, there seems to be an error. Please try again soon.

12 | 13 | 14 | -------------------------------------------------------------------------------- /2023/participants/amey-shinde/wagtail_new/mysite/mysite/templates/base.html: -------------------------------------------------------------------------------- 1 | {% load static wagtailcore_tags wagtailuserbar %} 2 | 3 | 4 | 5 | 6 | 7 | 8 | {% block title %} 9 | {% if page.seo_title %}{{ page.seo_title }}{% else %}{{ page.title }}{% endif %} 10 | {% endblock %} 11 | {% block title_suffix %} 12 | {% wagtail_site as current_site %} 13 | {% if current_site and current_site.site_name %}- {{ current_site.site_name }}{% endif %} 14 | {% endblock %} 15 | 16 | {% if page.search_description %} 17 | 18 | {% endif %} 19 | 20 | 21 | {# Force all links in the live preview panel to be opened in a new tab #} 22 | {% if request.in_preview_panel %} 23 | 24 | {% endif %} 25 | 26 | {# Global stylesheets #} 27 | 28 | 29 | {% block extra_css %} 30 | {# Override this in templates to add extra stylesheets #} 31 | {% endblock %} 32 | 33 | 34 | 35 | {% wagtailuserbar %} 36 | 37 | {% block content %}{% endblock %} 38 | 39 | {# Global javascript #} 40 | 41 | 42 | {% block extra_js %} 43 | {# Override this in templates to add extra javascript #} 44 | {% endblock %} 45 | 46 | 47 | -------------------------------------------------------------------------------- /2023/participants/amey-shinde/wagtail_new/mysite/mysite/urls.py: -------------------------------------------------------------------------------- 1 | from django.conf import settings 2 | from django.urls import include, path 3 | from django.contrib import admin 4 | 5 | from wagtail.admin import urls as wagtailadmin_urls 6 | from wagtail import urls as wagtail_urls 7 | from wagtail.documents import urls as wagtaildocs_urls 8 | 9 | from search import views as search_views 10 | 11 | urlpatterns = [ 12 | path("django-admin/", admin.site.urls), 13 | path("admin/", include(wagtailadmin_urls)), 14 | path("documents/", include(wagtaildocs_urls)), 15 | path("search/", search_views.search, name="search"), 16 | ] 17 | 18 | 19 | if settings.DEBUG: 20 | from django.conf.urls.static import static 21 | from django.contrib.staticfiles.urls import staticfiles_urlpatterns 22 | 23 | # Serve static and media files from development server 24 | urlpatterns += staticfiles_urlpatterns() 25 | urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT) 26 | 27 | urlpatterns = urlpatterns + [ 28 | # For anything not caught by a more specific rule above, hand over to 29 | # Wagtail's page serving mechanism. This should be the last pattern in 30 | # the list: 31 | path("", include(wagtail_urls)), 32 | # Alternatively, if you want Wagtail pages to be served from a subpath 33 | # of your site, rather than the site root: 34 | # path("pages/", include(wagtail_urls)), 35 | ] 36 | -------------------------------------------------------------------------------- /2023/participants/amey-shinde/wagtail_new/mysite/mysite/wsgi.py: -------------------------------------------------------------------------------- 1 | """ 2 | WSGI config for mysite project. 3 | 4 | It exposes the WSGI callable as a module-level variable named ``application``. 5 | 6 | For more information on this file, see 7 | https://docs.djangoproject.com/en/4.1/howto/deployment/wsgi/ 8 | """ 9 | 10 | import os 11 | 12 | from django.core.wsgi import get_wsgi_application 13 | 14 | os.environ.setdefault("DJANGO_SETTINGS_MODULE", "mysite.settings.dev") 15 | 16 | application = get_wsgi_application() 17 | -------------------------------------------------------------------------------- /2023/participants/amey-shinde/wagtail_new/mysite/requirements.txt: -------------------------------------------------------------------------------- 1 | Django>=4.1,<4.2 2 | wagtail>=4.2,<4.3 3 | -------------------------------------------------------------------------------- /2023/participants/amey-shinde/wagtail_new/mysite/search/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wagtail/gsoc/6c60ebc0067b8a552d714ce3ab27a348fda61c56/2023/participants/amey-shinde/wagtail_new/mysite/search/__init__.py -------------------------------------------------------------------------------- /2023/participants/amey-shinde/wagtail_new/mysite/search/templates/search/search.html: -------------------------------------------------------------------------------- 1 | {% extends "base.html" %} 2 | {% load static wagtailcore_tags %} 3 | 4 | {% block body_class %}template-searchresults{% endblock %} 5 | 6 | {% block title %}Search{% endblock %} 7 | 8 | {% block content %} 9 |

Search

10 | 11 |
12 | 13 | 14 |
15 | 16 | {% if search_results %} 17 |
    18 | {% for result in search_results %} 19 |
  • 20 |

    {{ result }}

    21 | {% if result.search_description %} 22 | {{ result.search_description }} 23 | {% endif %} 24 |
  • 25 | {% endfor %} 26 |
27 | 28 | {% if search_results.has_previous %} 29 | Previous 30 | {% endif %} 31 | 32 | {% if search_results.has_next %} 33 | Next 34 | {% endif %} 35 | {% elif search_query %} 36 | No results found 37 | {% endif %} 38 | {% endblock %} 39 | -------------------------------------------------------------------------------- /2023/participants/amey-shinde/wagtail_new/mysite/search/views.py: -------------------------------------------------------------------------------- 1 | from django.core.paginator import EmptyPage, PageNotAnInteger, Paginator 2 | from django.template.response import TemplateResponse 3 | 4 | from wagtail.models import Page 5 | from wagtail.search.models import Query 6 | 7 | 8 | def search(request): 9 | search_query = request.GET.get("query", None) 10 | page = request.GET.get("page", 1) 11 | 12 | # Search 13 | if search_query: 14 | search_results = Page.objects.live().search(search_query) 15 | query = Query.get(search_query) 16 | 17 | # Record hit 18 | query.add_hit() 19 | else: 20 | search_results = Page.objects.none() 21 | 22 | # Pagination 23 | paginator = Paginator(search_results, 10) 24 | try: 25 | search_results = paginator.page(page) 26 | except PageNotAnInteger: 27 | search_results = paginator.page(1) 28 | except EmptyPage: 29 | search_results = paginator.page(paginator.num_pages) 30 | 31 | return TemplateResponse( 32 | request, 33 | "search/search.html", 34 | { 35 | "search_query": search_query, 36 | "search_results": search_results, 37 | }, 38 | ) 39 | -------------------------------------------------------------------------------- /2023/participants/chinonso-ani/Green-Wagtail.md: -------------------------------------------------------------------------------- 1 | # Greener coding: Wagtail’s climate impact 2 | I read through this project idea, watched @mrchrisadams video from 2020, this is quite a long-tail project requiring substantive research. 3 | 4 | ## 1. Identify & Understand 5 | - Understand the climate impact of python/django and by extension wagtail project. 6 | This involves reading through the green coding project from a couple of sources he listed 7 | * [From Wagtail Discussion: Greener coding - Making a 'gold' reference configuration with the Wagtail bakery app #8843](https://github.com/wagtail/wagtail/discussions/8843) 8 | * Understanding how [Neon.tech](https://neon.tech/docs/introduction) implemented a serverless PostreSQL - is it possible to implement a serverless wagtail??? (Big weird question - a wagtail that can be deployed to lambda or something similar) 9 | * Code optimization: this is going to be a hard one, but what can be optimized about where/how wagtail runs, is written, is deployed? 10 | 11 | 12 | ## 2. Design 13 | I think it is important to follow a test driven approach here. To make sure we know when we have done it right. 14 | >What does it mean to have done right? (how would done right look like?) 15 | 16 | GOLD - Green Open Lean Distributed 17 | Our design must be golden. (I love this phrase, because I'm the Goldsmith.) 18 | 19 | 1. Qualitative: 20 | 2. Quantitative: Ideas discussed [here](https://www.cloudcarbonfootprint.org/docs/methodology/) follow a qualitative measure. Provides a good startup pad. 21 | 3. Mixed 22 | 4. Performance indicators 23 | 24 | ### 2.1. Qualitative 25 | There's not a lot of reference to qualitative stuffs and for good reason, @mrchrisadams started with 26 | >I hope this isn't too left-field for the discussion [here](https://github.com/wagtail/wagtail/discussions/8843) ... interest in the community in demonstrating some of the ideas using wagtail as as real world reference project 27 | 28 | Qualitative design strategies involve conducting user surveys, interviewing stakeholders and conducting expert reviews. This mustn't be for wagtail, it could be for django or even python as a whole. 29 | >At breaks during (python, django) meetups we could approach people with a form to be developed. Who know what we might discover? 30 | 31 | We could also do an online voluntary survey. Or at DjangoCon in June. 32 | 33 | ### 2.2. Quantitative 34 | I personally love the objectivity to which @mrchrisadams approached this subject. Many quantitative design strategies have been outlined, but a good way to approach this would be to: 35 | 1. Conduct a life-cycle assessment of wagtail - this would provide a comprehensive understanding of the environmental impact of the product. 36 | 2. Analyze server resource usage: product energy consumption, carbon footprint. 37 | 3. Calculate carbon emissions (and maybe savings) 38 | >@mrchrisadams said: He burnt through millions of VCs money trying to do this for years. 39 | 40 | We don't have the money or the time. 41 | 42 | At step 2 is where we would be trying out different deployment configurations, starting with docker containers that he has already drawn out... and then others. 43 | 44 | I was at an AWS event where they spoke about cold-starting problems with Java apps deployed as serverless - can't remember the full details, but I think this could be a close corollary 45 | 46 | ## 3. Develop 47 | Setting up a similar test structure like the example LAMP Stack. 48 | 49 | Implementing ideas, plans and strategies realized from the design phase. 50 | 51 | ## 4. Test 52 | Test what was developed according to design parameters that have been set. 53 | 54 | The wagtail bakery demo would be used for the testing using the configurations designed and deployed 55 | 56 | The major thing we test against is performance. Hope we haven't degraded performance... if so, by how much? 57 | 58 | ## 5. Expected Output 59 | The expected output will most likely affect how wagtail and most django/ python projects are built and deployed. 60 | 61 | Also a report on objectivity of the output is also required to answer the question posed: 62 | >Are the savings worth the extra hassle compared to running it on a VPS? 63 | 64 | A breakthrough would be highlighting how people could save more on billing if they did one more thing right - which is what we hope to discover. 65 | 66 | A well (or better) architected wagtail might be the end result. The GOLD standard for python projects maybe 67 | 68 | 69 | # Schedule and milestones 70 | TBD... this section will describe how much time to devote to each of the activities above. 71 | 72 | -------------------------------------------------------------------------------- /2023/participants/damilare/README.md: -------------------------------------------------------------------------------- 1 | # Introduction 2 | Hi everyone. 3 | I'm **Damilare** a web developer and technical writer based in Lagos, Nigeria. I'm fluent in Python and JavaScript. When using python I mainly work with Django although I use flask and FastAPI from time to time, with JavaScript I use React and it's associated frameworks/tooling (Next.js, Redux-Toolkit, MUI, etc.) 4 | This is first foray into open source contribution and I look forward to learning and making meaningful contributions to the organization. :handshake: 5 | 6 | ## Links 7 | 8 | | Profile | 9 | | --- | 10 | | [Github]( https://github.com/themilar)| 11 | | [Personal site](https://themilar.com) | 12 | 13 | ## Tasks 14 | 15 | ### Checklists 16 | 17 | We use checklists so all candidates demonstrate their interest and skills with the same process. They will help you get started and make sure you’re on the right track. 18 | 19 | #### Checklist: Google Summer of Code 20 | 21 | This is the first checklist for candidates to go through. It’s a good idea to start early, so you can get to know the community and the project. 22 | 23 | - [x] Watch the official [‘Introduction to GSoC’ video](https://www.youtube.com/watch?v=7jD2tChhrWM&feature=youtu.be). 24 | - [x] Read [Advise for People Applying for GSoC](https://developers.google.com/open-source/gsoc/help/student-advice). 25 | - [x] Read all of Google’s [contributor guide](https://google.github.io/gsocguides/student/) 26 | - [x] Read the official [timeline](https://developers.google.com/open-source/gsoc/timeline) and add the most important dates as reminders on your calendar. 27 | 28 | You’ve done the hardest bits! Now all that’s left is for you to: 29 | 30 | - [x] Introduce yourself on our [Welcome to Wagtail! Introductions](https://github.com/wagtail/gsoc/discussions/1) discussion thread. 31 | 32 | ### Checklist: open source contributions 33 | 34 | This checklist helps you demonstrate your understanding of how people use GitHub to collaborate. 35 | 36 | - [x] Read through [How to contribute to open source](https://opensource.guide/how-to-contribute/) 37 | - [x] Read [Open source etiquette](https://developer.mozilla.org/en-US/docs/MDN/Community/Open_source_etiquette) 38 | - [x] Make your first [pull request](https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/creating-a-pull-request) with us! Add your name to the list of participants in [2023/README.md](2023/README.md). 39 | - [x] Clone this repository, then add a new folder inside `2023/` with your name as the folder name. Inside that folder, add a `README.md` file, and copy-paste the introduction you posted earlier. Submit this to our project as a pull request. 40 | - [x] Read through GitHub’s [Markdown formatting documentation](https://docs.github.com/en/get-started/writing-on-github/getting-started-with-writing-and-formatting-on-github/basic-writing-and-formatting-syntax) 41 | - [x] Now make another pull request to your own README file, adding a Markdown table with links to: 42 | - [x] Your GitHub profile 43 | - [ ] Your Twitter profile if any 44 | - [ ] Your Mastodown profile if any 45 | - [ ] Your LinkedIn profile if any 46 | - [x] Your personal website 47 | - [x] Update your pull request to add a new `## Tasks` section to your participant file, and copy-paste our contributor guide’s checklists into it, marking each item as completed or not according to your progress. 48 | 49 | For participants already experienced with GitHub and Markdown, feel free to make all of the above changes in a single pull request. 50 | 51 | To stand out as an applicant, 52 | 53 | - [ ] Help others with their pull requests – spotting steps they might have missed, or suggesting improvements to their pull requests. 54 | - [ ] Demonstrate good awareness of open source etiquette when creating your pull requests (for example, adding an appropriate title and description). 55 | 56 | ### Checklist: interest in learning 57 | 58 | With this checklist, we expect you to demonstrate an ability to do research and learn new things. All tasks here will require updating your participant file within this `gsoc` repository in the `2023/` folder. 59 | 60 | - [x] Create a new `## Research` section in your personal file, with a list of links to the resources you’ve found most useful so far in trying to understand Wagtail as a project and the specific GSoC project idea you’re interested in. 61 | - [ ] Go through our projects under the [wagtail organisation](https://github.com/wagtail) in GitHub. Create a new list with links to repositories or specific issues you would be interested in contributing to during the internship. 62 | - [ ] Write a short blog post describing things you’ve learned recently, and share it with us. The post must be in English, include at least one image, be less than 500 words, and score a Grade 6 or lower on . The post has to be posted on a publicly-available platform (Dev.to, Hashnode, Medium, your own website), and you must also add it as a new section in your personal file in this repository (so we can provide feedback on the contents). 63 | 64 | ### Checklist: Django and Wagtail 65 | 66 | Here, we expect you to go through two tutorials to demonstrate your understanding of Django and Wagtail. Submit both projects you will have created as a pull request on this `gsoc` repository. 67 | 68 | - [x] Go through Django’s [Getting started documentation and tutorial](https://docs.djangoproject.com/en/4.1/intro/), until part 7. 69 | - [x] Go through Wagtail’s Getting started tutorial: [Your first Wagtail site](https://docs.wagtail.org/en/stable/getting_started/tutorial.html) 70 | 71 | - [x] [My project repostitory](https://github.com/themilar/wagtail-gitpod) 72 | - [x] [A gitpod snaphsot of my wagtail project](https://gitpod.io#snapshot/4bedcb28-4a8e-4bbe-aecb-3b97f363fb2a) 73 | 74 | ### Research 75 | 76 | - [How to Use the Wagtail CMS for Django: An Overview](https://steelkiwi.com/blog/how-to-use-the-wagtail-cms-for-django-an-overview/) 77 | - [Django Wagtail CMS | Building A Blog In 20 Minutes | Code with Stein](https://www.youtube.com/watch?v=mbUFWkZAm8w) 78 | -------------------------------------------------------------------------------- /2023/participants/kliiu/README.md: -------------------------------------------------------------------------------- 1 | Hello everyone! I am @kliiu. 2 | 3 | I am a senior student majoring in Computer Science in China. I am fascinated by the idea of open-source projects and I have participated in a CMS project. I am proficient in Python and Java, I am also familiar with SQL and Flask. 4 | 5 | I enjoy listening to all kinds of music and I can play a little guitar and piano. 6 | 7 | Though this is the first time that I participate in GSoC with Wagtail, I believe I would make great contributions with my passion and skills. 8 | 9 | 10 | ## Links 11 | | Profile | Link | 12 | | ------------- | ------------- | 13 | | GitHub | [kliiu](https://github.com/kliiu) | 14 | | Website | [lanzhoushoujuan](https://lanzhoushoujuan.club) 15 | 16 | ## Tasks 17 | ### Checklists 18 | 19 | We use checklists so all candidates demonstrate their interest and skills with the same process. They will help you get started and make sure you’re on the right track. 20 | 21 | #### Checklist: Google Summer of Code 22 | 23 | This is the first checklist for candidates to go through. It’s a good idea to start early, so you can get to know the community and the project. 24 | 25 | - [x] Watch the official [‘Introduction to GSoC’ video](https://www.youtube.com/watch?v=7jD2tChhrWM&feature=youtu.be). 26 | - [x] Read [Advice for People Applying for GSoC](https://developers.google.com/open-source/gsoc/help/student-advice). 27 | - [x] Read all of Google’s [contributor guide](https://google.github.io/gsocguides/student/) 28 | - [x] Read the official [timeline](https://developers.google.com/open-source/gsoc/timeline) and add the most important dates as reminders on your calendar. 29 | 30 | You’ve done the hardest bits! Now all that’s left is for you to: 31 | 32 | - [x] Introduce yourself on our [Welcome to Wagtail! Introductions](https://github.com/wagtail/gsoc/discussions/1) discussion thread. 33 | 34 | ### Checklist: open source contributions 35 | 36 | This checklist helps you demonstrate your understanding of how people use GitHub to collaborate. 37 | 38 | - [x] Read through [How to contribute to open source](https://opensource.guide/how-to-contribute/) 39 | - [x] Read [Open source etiquette](https://developer.mozilla.org/en-US/docs/MDN/Community/Open_source_etiquette) 40 | - [x] Make your first [pull request](https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/creating-a-pull-request) with us! Add your name to the list of participants in [2023/README.md](2023/README.md). 41 | - [x] Clone this repository, then add a new folder inside `2023/` with your name as the folder name. Inside that folder, add a `README.md` file, and copy-paste the introduction you posted earlier. Submit this to our project as a pull request. 42 | - [x] Read through GitHub’s [Markdown formatting documentation](https://docs.github.com/en/get-started/writing-on-github/getting-started-with-writing-and-formatting-on-github/basic-writing-and-formatting-syntax) 43 | - [x] Now make another pull request to your own README file, adding a Markdown table with links to: 44 | - [x] Your GitHub profile 45 | - [ ] Your Twitter profile if any 46 | - [ ] Your Mastodon profile if any 47 | - [ ] Your LinkedIn profile if any 48 | - [x] Your personal website 49 | - [x] Update your pull request to add a new `## Tasks` section to your participant file, and copy-paste our contributor guide’s checklists into it, marking each item as completed or not according to your progress. 50 | 51 | For participants already experienced with GitHub and Markdown, feel free to make all of the above changes in a single pull request. 52 | 53 | To stand out as an applicant, 54 | 55 | - [ ] Help others with their pull requests – spotting steps they might have missed, or suggesting improvements to their pull requests. 56 | - [ ] Demonstrate good awareness of open source etiquette when creating your pull requests (for example, adding an appropriate title and description). 57 | 58 | ### Checklist: interest in learning 59 | 60 | With this checklist, we expect you to demonstrate an ability to do research and learn new things. All tasks here will require updating your participant file within this `gsoc` repository in the `2023/` folder. 61 | 62 | - [ ] Create a new `## Research` section in your personal file, with a list of links to the resources you’ve found most useful so far in trying to understand Wagtail as a project and the specific GSoC project idea you’re interested in. 63 | - [ ] Go through our projects under the [wagtail organisation](https://github.com/wagtail) in GitHub. Create a new list with links to repositories or specific issues you would be interested in contributing to during the internship. 64 | - [ ] Write a short blog post describing things you’ve learned recently, and share it with us. The post must be in English, include at least one image, be less than 500 words, and score a Grade 6 or lower on . The post has to be posted on a publicly-available platform (Dev.to, Hashnode, Medium, your own website), and you must also add it as a new section in your personal file in this repository (so we can provide feedback on the contents). 65 | 66 | ### Checklist: Django and Wagtail 67 | 68 | Here, we expect you to go through two tutorials to demonstrate your understanding of Django and Wagtail. Submit both projects you will have created as a pull request on this `gsoc` repository. 69 | 70 | - [ ] Go through Django’s [Getting started documentation and tutorial](https://docs.djangoproject.com/en/4.1/intro/), until part 7. 71 | - [ ] Go through Wagtail’s Getting started tutorial: [Your first Wagtail site](https://docs.wagtail.org/en/stable/getting_started/tutorial.html) 72 | -------------------------------------------------------------------------------- /2023/participants/priscilla-baah/README.md: -------------------------------------------------------------------------------- 1 | ## **Introduction** 2 | 3 | Hello everyone ! 👋 4 | 5 | I am Priscilla, a beginner software developer based in Accra, Ghana currently making a career pivot from finance and data science. I have been working primarily with Django as a backend developer with substantial knowledge of JavaScript, HTML and CSS. 6 | 7 | I am very curious about how software at enterprise level works, and for me GSOC and open source in general is a great avenue to learn about and contribute to such projects within a community context. 8 | I am passionate about continuous learning and knowledge sharing through community engagements as I have shown in my career and volunteering initiatives as a trainer and mentor for others in their early career. 9 | 10 | In my work I am always looking for ways to improve efficiency and make things easier for others. This, combined with my experience in Django is why I am heavily interested in working on the background workers project for Wagtail. 11 | Going through slack conversations and comments here, I love the effort that Wagtail puts into creating a very diverse and welcoming community for all contributors, and I am very happy to be a part of the community. 12 | 13 | --- 14 | 15 | 16 | ## **Socials** 17 | 18 | | Social | Link | 19 | | ----------- | ----------------------------------------------------------------| 20 | | GitHub | [Priscilla-B](https://github.com/Priscilla-B) | 21 | | Twitter | [ofosua_x](https://twitter.com/ofosua_x) | 22 | | LinkedIn | [Priscilla Baah](https://www.linkedin.com/in/priscillabaah/) | 23 | 24 | --- 25 | 26 | 27 | ## **Tasks** 28 | 29 | ### Checklist: Google Summer of Code 30 | - [x] Watch the official [‘Introduction to GSoC’ video](https://www.youtube.com/watch?v=7jD2tChhrWM&feature=youtu.be). 31 | - [x] Read [Advise for People Applying for GSoC](https://developers.google.com/open-source/gsoc/help/student-advice). 32 | - [x] Read all of Google’s [contributor guide](https://google.github.io/gsocguides/student/) 33 | - [x] Read the official [timeline](https://developers.google.com/open-source/gsoc/timeline) and add the most important dates as reminders on your calendar. 34 | - [x] Introduce yourself on our [Welcome to Wagtail! Introductions](https://github.com/wagtail/gsoc/discussions/1) discussion thread. 35 | 36 | ### Checklist: open source contributions 37 | - [x] Read through [How to contribute to open source](https://opensource.guide/how-to-contribute/) 38 | - [x] Read [Open source etiquette](https://developer.mozilla.org/en-US/docs/MDN/Community/Open_source_etiquette) 39 | - [x] Make your first [pull request](https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/creating-a-pull-request) with us! Add your name to the list of participants in [2023/README.md](2023/README.md). 40 | - [x] Clone this repository, then add a new folder inside `2023/` with your name as the folder name. Inside that folder, add a `README.md` file, and copy-paste the introduction you posted earlier. Submit this to our project as a pull request. 41 | - [x] Read through GitHub’s [Markdown formatting documentation](https://docs.github.com/en/get-started/writing-on-github/getting-started-with-writing-and-formatting-on-github/basic-writing-and-formatting-syntax) 42 | - [x] Now make another pull request to your own README file, adding a Markdown table with links to: 43 | - [x] Your GitHub profile 44 | - [x] Your Twitter profile if any 45 | - [ ] Your Mastodown profile if any 46 | - [x] Your LinkedIn profile if any 47 | - [ ] Your personal website 48 | - [x] Update your pull request to add a new `## Tasks` section to your participant file, and copy-paste our contributor guide’s checklists into it, marking each item as completed or not according to your progress. 49 | - [ ] Help others with their pull requests – spotting steps they might have missed, or suggesting improvements to their pull requests. 50 | - [ ] Demonstrate good awareness of open source etiquette when creating your pull requests (for example, adding an appropriate title and description). 51 | 52 | 53 | ### Checklist: interest in learning 54 | - [ ] Create a new `## Research` section in your personal file, with a list of links to the resources you’ve found most useful so far in trying to understand Wagtail as a project and the specific GSoC project idea you’re interested in. 55 | - [ ] Go through our projects under the [wagtail organisation](https://github.com/wagtail) in GitHub. Create a new list with links to repositories or specific issues you would be interested in contributing to during the internship. 56 | - [ ] Write a short blog post describing things you’ve learned recently, and share it with us. The post must be in English, include at least one image, be less than 500 words, and score a Grade 6 or lower on . The post has to be posted on a publicly-available platform (Dev.to, Hashnode, Medium, your own website), and you must also add it as a new section in your personal file in this repository (so we can provide feedback on the contents). 57 | 58 | 59 | ### Checklist: Django and Wagtail 60 | - [ ] Go through Django’s [Getting started documentation and tutorial](https://docs.djangoproject.com/en/4.1/intro/), until part 7. 61 | - [ ] Go through Wagtail’s Getting started tutorial: [Your first Wagtail site](https://docs.wagtail.org/en/stable/getting_started/tutorial.html) 62 | 63 | 64 | 65 | 66 | -------------------------------------------------------------------------------- /2023/participants/roshan-rajeev/README.md: -------------------------------------------------------------------------------- 1 | ## Introduction 2 | 3 | Hello everyone, 4 | 5 | My name is Roshan and I'm a computer science engineering student from India with a passion for web development and quantum computing. I'm excited to join the Wagtail community and contribute to this incredible open-source project, as I have some experience with open-source contributions and am always eager to take on new challenges. 6 | 7 | I have a strong foundation in Python and JavaScript and am also proficient in various web development technologies such as React, Django, Docker, and Jenkins, which I have utilized in multiple projects. 8 | 9 | When I created my first blog, I searched for the best CMS integration with Gatsby. I tried various solutions such as Strapi, Contentful, and NetlifyCMS, and came to appreciate the importance of a CMS that provides a great user experience. I'm impressed by Wagtail's work as a CMS and its potential to revolutionize content management for businesses and organizations. I'm excited to learn more about Wagtail, and I look forward to its Gatsby integration. 😄 10 | 11 | I'm eager to collaborate with the Wagtail community, and you can find me on Github at https://github.com/roshanrajeev and on LinkedIn at https://www.linkedin.com/in/roshanrjv. 12 | 13 | ## Social 14 | 15 | * [GitHub](https://github.com/roshanrajeev) 16 | * [Twitter](https://twitter.com/roshanrjv) 17 | * [Linkedin](https://www.linkedin.com/in/roshanrjv) 18 | * [Website](http://roshanrajeev.com/) 19 | 20 | ## Tasks 21 | 22 | #### Checklist: Google Summer of Code 23 | 24 | This is the first checklist for candidates to go through. It’s a good idea to start early, so you can get to know the community and the project. 25 | 26 | - [x] Watch the official [‘Introduction to GSoC’ video](https://www.youtube.com/watch?v=7jD2tChhrWM&feature=youtu.be). 27 | - [x] Read [Advise for People Applying for GSoC](https://developers.google.com/open-source/gsoc/help/student-advice). 28 | - [x] Read all of Google’s [contributor guide](https://google.github.io/gsocguides/student/) 29 | - [x] Read the official [timeline](https://developers.google.com/open-source/gsoc/timeline) and add the most important dates as reminders on your calendar. 30 | 31 | You’ve done the hardest bits! Now all that’s left is for you to: 32 | 33 | - [x] Introduce yourself on our [Welcome to Wagtail! Introductions](https://github.com/wagtail/gsoc/discussions/1) discussion thread. 34 | 35 | ### Checklist: open source contributions 36 | 37 | This checklist helps you demonstrate your understanding of how people use GitHub to collaborate. 38 | 39 | - [x] Read through [How to contribute to open source](https://opensource.guide/how-to-contribute/) 40 | - [x] Read [Open source etiquette](https://developer.mozilla.org/en-US/docs/MDN/Community/Open_source_etiquette) 41 | - [ ] Make your first [pull request](https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/creating-a-pull-request) with us! Add your name to the list of participants in [2023/README.md](2023/README.md). 42 | - [x] Clone this repository, then add a new folder inside `2023/` with your name as the folder name. Inside that folder, add a `README.md` file, and copy-paste the introduction you posted earlier. Submit this to our project as a pull request. 43 | - [x] Read through GitHub’s [Markdown formatting documentation](https://docs.github.com/en/get-started/writing-on-github/getting-started-with-writing-and-formatting-on-github/basic-writing-and-formatting-syntax) 44 | - [x] Now make another pull request to your own README file, adding a Markdown table with links to: 45 | - [x] Your GitHub profile 46 | - [x] Your Twitter profile if any 47 | - [ ] Your Mastodown profile if any 48 | - [x] Your LinkedIn profile if any 49 | - [x] Your personal website 50 | - [x] Update your pull request to add a new `## Tasks` section to your participant file, and copy-paste our contributor guide’s checklists into it, marking each item as completed or not according to your progress. 51 | 52 | For participants already experienced with GitHub and Markdown, feel free to make all of the above changes in a single pull request. 53 | 54 | To stand out as an applicant, 55 | 56 | - [ ] Help others with their pull requests – spotting steps they might have missed, or suggesting improvements to their pull requests. 57 | - [ ] Demonstrate good awareness of open source etiquette when creating your pull requests (for example, adding an appropriate title and description). 58 | 59 | ### Checklist: interest in learning 60 | 61 | With this checklist, we expect you to demonstrate an ability to do research and learn new things. All tasks here will require updating your participant file within this `gsoc` repository in the `2023/` folder. 62 | 63 | - [ ] Create a new `## Research` section in your personal file, with a list of links to the resources you’ve found most useful so far in trying to understand Wagtail as a project and the specific GSoC project idea you’re interested in. 64 | - [ ] Go through our projects under the [wagtail organisation](https://github.com/wagtail) in GitHub. Create a new list with links to repositories or specific issues you would be interested in contributing to during the internship. 65 | - [ ] Write a short blog post describing things you’ve learned recently, and share it with us. The post must be in English, include at least one image, be less than 500 words, and score a Grade 6 or lower on . The post has to be posted on a publicly-available platform (Dev.to, Hashnode, Medium, your own website), and you must also add it as a new section in your personal file in this repository (so we can provide feedback on the contents). 66 | 67 | ### Checklist: Django and Wagtail 68 | 69 | Here, we expect you to go through two tutorials to demonstrate your understanding of Django and Wagtail. Submit both projects you will have created as a pull request on this `gsoc` repository. 70 | 71 | - [x] Go through Django’s [Getting started documentation and tutorial](https://docs.djangoproject.com/en/4.1/intro/), until part 7. 72 | - [ ] Go through Wagtail’s Getting started tutorial: [Your first Wagtail site](https://docs.wagtail.org/en/stable/getting_started/tutorial.html) 73 | -------------------------------------------------------------------------------- /2023/participants/sangmeshwar/README.md: -------------------------------------------------------------------------------- 1 | ## Introduction 2 | 3 | Hey everyone! 4 | My name is Sangmeshwar Mahajan. I am pursuing undergraduate degree in Computer Engineering. I am from Pune. I like designing good user interfaces. Also, I am passionate about improving user experience and find new innovative ideas. 5 | As a open source contributor I have experience of doing contribution in Hacktoberfest'22. But it's my first attempt in GSoC. As a open source contributor, I liked your project [#dark-theme-for-wagtail-admin](https://github.com/wagtail/wagtail/wiki/Google-Summer-of-Code-2023#dark-theme-for-wagtail-admin). It's just raised my instinct of development in your project. 6 | Here is my [linkedIn](https://www.linkedin.com/in/mahajan-sangmeshwar/) profile link. 7 | 8 | ## Socials 9 | 10 | | Social Media | URL | 11 | | ------------ | --------------------------------------------------------------- | 12 | | GitHub | [sangmeshwar](https://github.com/sangmesh04) | 13 | | LinkedIn | [sangmeshwar](https://www.linkedin.com/in/mahajan-sangmeshwar/) | 14 | | Twitter | [sangmeshwar](https://twitter.com/sangmesh04) | 15 | 16 | --- 17 | 18 | ## Tasks 19 | 20 | ### Checklist: Google Summer of Code 21 | 22 | - [x] Watch the official [‘Introduction to GSoC’ video](https://www.youtube.com/watch?v=7jD2tChhrWM&feature=youtu.be). 23 | - [x] Read [Advise for People Applying for GSoC](https://developers.google.com/open-source/gsoc/help/student-advice). 24 | - [x] Read all of Google’s [contributor guide](https://google.github.io/gsocguides/student/) 25 | - [x] Read the official [timeline](https://developers.google.com/open-source/gsoc/timeline) and add the most important dates as reminders on your calendar. 26 | - [x] Introduce yourself on our [Welcome to Wagtail! Introductions](https://github.com/wagtail/gsoc/discussions/1) discussion thread. 27 | 28 | ### Checklist: open source contributions 29 | 30 | - [x] Read through [How to contribute to open source](https://opensource.guide/how-to-contribute/) 31 | - [x] Read [Open source etiquette](https://developer.mozilla.org/en-US/docs/MDN/Community/Open_source_etiquette) 32 | - [x] Make your first [pull request](https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/creating-a-pull-request) with us! Add your name to the list of participants in [2023/README.md](2023/README.md). 33 | - [x] Clone this repository, then add a new folder inside `2023/` with your name as the folder name. Inside that folder, add a `README.md` file, and copy-paste the introduction you posted earlier. Submit this to our project as a pull request. 34 | - [x] Read through GitHub’s [Markdown formatting documentation](https://docs.github.com/en/get-started/writing-on-github/getting-started-with-writing-and-formatting-on-github/basic-writing-and-formatting-syntax) 35 | - [x] Now make another pull request to your own README file, adding a Markdown table with links to: 36 | - [x] Your GitHub profile 37 | - [x] Your Twitter profile if any 38 | - [ ] Your Mastodown profile if any 39 | - [x] Your LinkedIn profile if any 40 | - [ ] Your personal website 41 | - [x] Update your pull request to add a new `## Tasks` section to your participant file, and copy-paste our contributor guide’s checklists into it, marking each item as completed or not according to your progress. 42 | - [x] Help others with their pull requests – spotting steps they might have missed, or suggesting improvements to their pull requests. 43 | - [x] Demonstrate good awareness of open source etiquette when creating your pull requests (for example, adding an appropriate title and description). 44 | 45 | ### Checklist: interest in learning 46 | 47 | - [x] Create a new `## Research` section in your personal file, with a list of links to the resources you’ve found most useful so far in trying to understand Wagtail as a project and the specific GSoC project idea you’re interested in. 48 | - [x] Go through our projects under the [wagtail organisation](https://github.com/wagtail) in GitHub. Create a new list with links to repositories or specific issues you would be interested in contributing to during the internship. 49 | - [ ] Write a short blog post describing things you’ve learned recently, and share it with us. The post must be in English, include at least one image, be less than 500 words, and score a Grade 6 or lower on . The post has to be posted on a publicly-available platform (Dev.to, Hashnode, Medium, your own website), and you must also add it as a new section in your personal file in this repository (so we can provide feedback on the contents). 50 | 51 | ### Checklist: Django and Wagtail 52 | 53 | - [x] Go through Django’s [Getting started documentation and tutorial](https://docs.djangoproject.com/en/4.1/intro), until part 7. 54 | - [x] Go through Wagtail’s Getting started tutorial: [Your first Wagtail site](https://docs.wagtail.org/en/stable/getting_started/tutorial.html) 55 | 56 | ## Research 57 | 58 | Links that I have gone through 59 | 60 | - [The Wagtail Organization Github](https://github.com/wagtail) 61 | - [The Wagtail Documentation](https://docs.wagtail.org/en/stable/releases/4.2.1.html) 62 | - [Installating Wagtail](https://medium.com/@dencomac/getting-started-with-wagtail-a-beginners-installation-guide-a5671da1eccc) 63 | 64 | ## Contributions 65 | 66 | During GSoC I would like to contribute in 67 | 68 | - [The Wagtail Official Website](https://github.com/wagtail/wagtail.org) 69 | - [#dark-theme-for-wagtail-admin](https://github.com/wagtail/wagtail/wiki/Google-Summer-of-Code-2023#dark-theme-for-wagtail-admin) 70 | - [The Wagtail autocomplete](https://github.com/wagtail/wagtail) 71 | -------------------------------------------------------------------------------- /2023/participants/satvik-vashisht/README.md: -------------------------------------------------------------------------------- 1 | ## **Introduction** 2 | 3 | I'm Satvik Vashisht, a second-year undergrad based in India. I've been contributing to Wagtail for two months now and have already made some valuable contributions. My main areas of interest within Wagtail are front-end design and performance optimization. In addition to my proficiency in Python, HTML, CSS, and C++, I also have experience working with Django and Git. Contributing to Wagtail has been an excellent learning experience for me, and I'm excited to continue contributing and improving my skills as a developer. 4 | 5 | 6 | | Social | Link | 7 | | ----------- | ----------------------------------------------------------------| 8 | | GitHub | [satvikvash](https://github.com/satvikvash) | 9 | | LinkedIn | [Satvik Vashisht](https://www.linkedin.com/in/satvik-vashisht/) | 10 | 11 | --- 12 | 13 | 14 | ## **Tasks** 15 | 16 | ### Checklist: Google Summer of Code 17 | - [x] Watch the official [‘Introduction to GSoC’ video](https://www.youtube.com/watch?v=7jD2tChhrWM&feature=youtu.be). 18 | - [x] Read [Advise for People Applying for GSoC](https://developers.google.com/open-source/gsoc/help/student-advice). 19 | - [x] Read all of Google’s [contributor guide](https://google.github.io/gsocguides/student/) 20 | - [x] Read the official [timeline](https://developers.google.com/open-source/gsoc/timeline) and add the most important dates as reminders on your calendar. 21 | - [x] Introduce yourself on our [Welcome to Wagtail! Introductions](https://github.com/wagtail/gsoc/discussions/1) discussion thread. 22 | 23 | ### Checklist: open source contributions 24 | - [x] Read through [How to contribute to open source](https://opensource.guide/how-to-contribute/) 25 | - [x] Read [Open source etiquette](https://developer.mozilla.org/en-US/docs/MDN/Community/Open_source_etiquette) 26 | - [x] Make your first [pull request](https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/creating-a-pull-request) with us! Add your name to the list of participants in [2023/README.md](2023/README.md). 27 | - [x] Clone this repository, then add a new folder inside `2023/` with your name as the folder name. Inside that folder, add a `README.md` file, and copy-paste the introduction you posted earlier. Submit this to our project as a pull request. 28 | - [x] Read through GitHub’s [Markdown formatting documentation](https://docs.github.com/en/get-started/writing-on-github/getting-started-with-writing-and-formatting-on-github/basic-writing-and-formatting-syntax) 29 | - [x] Now make another pull request to your own README file, adding a Markdown table with links to: 30 | - [x] Your GitHub profile 31 | - [ ] Your Twitter profile if any 32 | - [ ] Your Mastodown profile if any 33 | - [x] Your LinkedIn profile if any 34 | - [ ] Your personal website 35 | - [x] Update your pull request to add a new `## Tasks` section to your participant file, and copy-paste our contributor guide’s checklists into it, marking each item as completed or not according to your progress. 36 | - [ ] Help others with their pull requests – spotting steps they might have missed, or suggesting improvements to their pull requests. 37 | - [ ] Demonstrate good awareness of open source etiquette when creating your pull requests (for example, adding an appropriate title and description). 38 | 39 | 40 | ### Checklist: interest in learning 41 | - [ ] Create a new `## Research` section in your personal file, with a list of links to the resources you’ve found most useful so far in trying to understand Wagtail as a project and the specific GSoC project idea you’re interested in. 42 | - [ ] Go through our projects under the [wagtail organisation](https://github.com/wagtail) in GitHub. Create a new list with links to repositories or specific issues you would be interested in contributing to during the internship. 43 | - [ ] Write a short blog post describing things you’ve learned recently, and share it with us. The post must be in English, include at least one image, be less than 500 words, and score a Grade 6 or lower on . The post has to be posted on a publicly-available platform (Dev.to, Hashnode, Medium, your own website), and you must also add it as a new section in your personal file in this repository (so we can provide feedback on the contents). 44 | 45 | 46 | ### Checklist: Django and Wagtail 47 | - [x] Go through Django’s [Getting started documentation and tutorial](https://docs.djangoproject.com/en/4.1/intro/), until part 7. 48 | - [x] Go through Wagtail’s Getting started tutorial: [Your first Wagtail site](https://docs.wagtail.org/en/stable/getting_started/tutorial.html) 49 | -------------------------------------------------------------------------------- /2023/participants/suyash-singh/readme.md: -------------------------------------------------------------------------------- 1 | ## Introduction 2 | Greetings Everyone! I am Suyash Singh, a pre-final year student pursuing Computer Science. 3 | 4 | I have been into Backend and Django for the past Year. I have two intern experiences where I got to work on production code. I was always interested in writing Open Source code. As there seems nothing comparable to Open Source when it comes to writing clean code which can be read further down the line. I have been contributing to Wagtail since September last year and can confidently say that, the things that I have learnt with Open Source, I couldn't have possibly learnt anywhere else. I also love to see that each contributions in Wagtail gets recognized. GSOC is a great project that supports the students and organisations, and would love to be a part of this reputed program! 5 | 6 | I also love reading about distributed systems and system design in my free time. I have participated and won National Level Hackathons like Smart India Hackathon! 7 | 8 | ## Social-media links 9 | 10 | | social media | link | 11 | |--------------|:-----:| 12 | | GitHub | https://github.com/GeekGawd | 13 | | LinkedIn | https://www.linkedin.com/in/suyash-singh-a1427b222/ | 14 | | Medium | https://medium.com/@suyashsingh.stem | 15 | 16 | ### Some additional links (recent works) 17 | 1. Backend Developer Intern - [Sayf](https://sayf.in/) 18 | 2. Backend Developer Intern - [Clientell](https://www.getclientell.com/) 19 | 3. Python Developer - Software Developement Center of the College Software Incubator - [Software Incubator](https://silive.in/) 20 | 21 | ## Tasks 22 | 23 | - [x] Watch the official [‘Introduction to GSoC’ video](https://www.youtube.com/watch?v=7jD2tChhrWM&feature=youtu.be). 24 | - [x] Read [Advise for People Applying for GSoC](https://developers.google.com/open-source/gsoc/help/student-advice). 25 | - [x] Read all of Google’s [contributor guide](https://google.github.io/gsocguides/student/) 26 | - [x] Read the official [timeline](https://developers.google.com/open-source/gsoc/timeline) and add the most important dates as reminders on your calendar. 27 | - [x] Introduce yourself on our [Welcome to Wagtail! Introductions](https://github.com/wagtail/gsoc/discussions/1) discussion thread. 28 | - [x] Read through [How to contribute to open source](https://opensource.guide/how-to-contribute/) 29 | - [x] Read [Open source etiquette](https://developer.mozilla.org/en-US/docs/MDN/Community/Open_source_etiquette) 30 | - [x] Make your first [pull request](https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/creating-a-pull-request) with us! Add your name to the list of participants in [2023/README.md](2023/README.md). 31 | - [x] Clone this repository, then add a new folder inside `2023/` with your name as the folder name. Inside that folder, add a `README.md` file, and copy-paste the introduction you posted earlier. Submit this to our project as a pull request. 32 | - [x] Read through GitHub’s [Markdown formatting documentation](https://docs.github.com/en/get-started/writing-on-github/getting-started-with-writing-and-formatting-on-github/basic-writing-and-formatting-syntax) 33 | - [x] Now make another pull request to your own README file, adding a Markdown table with links to: 34 | - [x] Your GitHub profile 35 | - [ ] Your Twitter profile if any 36 | - [ ] Your Mastodown profile if any 37 | - [x] Your LinkedIn profile if any 38 | - [ ] Your personal website 39 | - [x] Update your pull request to add a new `## Tasks` section to your participant file, and copy-paste our contributor guide’s checklists into it, marking each item as completed or not according to your progress. 40 | - [x] Help others with their pull requests – spotting steps they might have missed, or suggesting improvements to their pull requests. 41 | - [x] Demonstrate good awareness of open source etiquette when creating your pull requests (for example, adding an appropriate title and description). 42 | - [x] Create a new `## Research` section in your personal file, with a list of links to the resources you’ve found most useful so far in trying to understand Wagtail as a project and the specific GSoC project idea you’re interested in. 43 | - [x] Go through our projects under the [wagtail organisation](https://github.com/wagtail) in GitHub. Create a new list with links to repositories or specific issues you would be interested in contributing to during the internship. 44 | - [x] Write a short blog post describing things you’ve learned recently, and share it with us. The post must be in English, include at least one image, be less than 500 words, and score a Grade 6 or lower on . The post has to be posted on a publicly-available platform (Dev.to, Hashnode, Medium, your own website), and you must also add it as a new section in your personal file in this repository (so we can provide feedback on the contents). 45 | - [x] Go through Django’s [Getting started documentation and tutorial](https://docs.djangoproject.com/en/4.1/intro/), until part 7. 46 | - [x] Go through Wagtail’s Getting started tutorial: [Your first Wagtail site](https://docs.wagtail.org/en/stable/getting_started/tutorial.html) 47 | 48 | ## Research 49 | 50 | 51 | | Resuource | link | 52 | |--------------|:-----:| 53 | | Wagtail Documentation | https://docs.wagtail.org/en/stable/ | 54 | | Wagtail Repository | https://github.com/wagtail/wagtail | 55 | | Coding for Everybody YouTube Wagtail Playlist | https://www.youtube.com/playlist?list=PLMQHMcNi6ocsS8Bfnuy_IDgJ4bHRRrvub | 56 | 57 | ### Interested work 58 | [RFC 72: Background workers](https://github.com/wagtail/wagtail/wiki/Google-Summer-of-Code-2023#rfc-72-background-workers) 59 | 60 | [InlinePanel Ordering Issues](https://github.com/wagtail/wagtail/issues/9391) This issue took me weeks to understand, however couldn't come to a solution due to poor frontend skills. Maybe with some guidance from the mentors this summer, I can apply a simple fix. 61 | 62 | [Convert Wagtail Views to Class Based Views](https://github.com/wagtail/wagtail/issues/8365) I started work on this issue, however due I diverted my attention to other wagtail issues. This summer I don't have any commitments, so would love to tackle this and migrate the views to CBV. 63 | 64 | 65 | ## Blog 66 | https://medium.com/@suyashsingh.stem/how-to-import-excel-data-in-django-views-using-django-import-export-pandas-%EF%B8%8F-826c915bb670 -------------------------------------------------------------------------------- /2023/participants/thibaud-colas/README.md: -------------------------------------------------------------------------------- 1 | I’m Thibaud, core contributor to Wagtail since 2018. I work at [@torchbox](https://github.com/torchbox), primarily on Wagtail but I also occasionally do consulting on other projects, and even coding sometimes! I primarily work on UI and in particular accessibility these days but also have experience with back-end dev in JS/PHP/Python. 2 | 3 | Outside of work, these days I spend most of my time with two little tornadoes that are 4 and 1 years old. Usually on a bike but sometimes on other modes of transportation: 4 | 5 | ![Dad and boy on a yellow kayak on the river, with a bridge in the background](https://user-images.githubusercontent.com/877585/220773290-7abf86de-9a4e-4a49-88a0-f45d6019bff1.jpg) 6 | 7 | For Google Summer of Code – I’m one of the Organization Administrators for Wagtail, and will also be mentoring one of the projects. I think programmes like GSoC have a very important place in open source, helping orgs like Wagtail to create a more diverse, richer community, and creating amazing opportunities for people to kickstart their careers. 8 | -------------------------------------------------------------------------------- /2023/participants/vallabhtiwari/README.md: -------------------------------------------------------------------------------- 1 | ## Introduction 2 | Hello, I am Vallabh, a student form India. 3 | I love backend development. I have made already some contributions to Wagtail. [One of them](https://github.com/wagtail/wagtail/issues/9683) was adding Wagtail docs to [devdocs.io](https://devdocs.io/wagtail/) . I want to learn more about Wagtail, and contribute more. 4 | 5 | Using a tool to make a website and contributing to that tool itself which is used to make websites are totally different things. This is what excites me most about open source. Contributing to something which people actually use. 6 | 7 | I am very much excited and willing to be a part of GSOC with Wagtail. 8 | I often try to understand some advanced issues of wagtail, read codes and PRs on them, or the Wagtail codebase itself, although understand little. Collaborating with fellow contributors and mentors through GSOC would help me very much in these thing. Hoping to be a part of this awesome community. 9 | 10 | ## Social-media Profiles 11 | 12 | | Profile | Link | 13 | |----------|-------------------------------------------------------------| 14 | | GitHub | [vallabhtiwari](https://github.com/vallabhtiwari) | 15 | | LinkedIn | [vallabhtiwari](https://www.linkedin.com/in/vallabhtiwari/) | 16 | | Twitter | [vallabh__tiwari](https://twitter.com/vallabh__tiwari) | 17 | -------------------------------------------------------------------------------- /2024/README.md: -------------------------------------------------------------------------------- 1 | # 2024 2 | -------------------------------------------------------------------------------- /2024/application-template.md: -------------------------------------------------------------------------------- 1 | # Application template (replace with your own title) 2 | 3 | ## How to use this template (delete this section) 4 | 5 | 👋 We’ve created this template to help people put together a well structured proposal. Following the template isn’t mandatory, we just hope it will help you understand what we are after. 6 | 7 | If you’ve not submitted an application yet, 8 | 9 | Create your own copy of this document in Google Docs. 10 | 11 | Set your new document’s title with your name and proposal title (for example “Your Name | GSoC 2024 Title of your proposal”) 12 | 13 | In the document’s sharing settings, set the document to be available to “Anyone with the link”, with the ability to Comment on the document (“Anyone on the Internet with the link can comment”) 14 | 15 | Delete this section of the document and fill in other sections / add more sections as you see fit 16 | 17 | Send your Google Docs proposal’s link to [our form: Wagtail GSoC 2024 proposal draft reviews](./proposal-draft-reviews.md) for feedback. We will pass it along to all mentors, and provide feedback via Google Docs comments. 18 | 19 | Download your document as a PDF and upload it as part of the application form on [https://summerofcode.withgoogle.com/](https://summerofcode.withgoogle.com/) 20 | 21 | The Google Docs document is only for proposal feedback from mentors. The submitted PDF on the website is what will ultimately be reviewed. 22 | 23 | If you have already submitted an application, follow the above steps to create a Google Docs document, copy-pasting your existing application’s content into it as-is. 24 | 25 | ## About me 26 | 27 | ### Introduction 28 | 29 | Introduce yourself, your background, and your motivation for participating in GSoC. 30 | 31 | Additionally, briefly describe how you meet the skills requirement for the project. 32 | 33 | ### Personal Information 34 | 35 | This is only so we can cross-check your proposal with details submitted in GitHub. 36 | 37 | - Full name 38 | - Email address 39 | - GitHub profile link 40 | - University or college name and Major or field of study – or employment details 41 | - Timezone and location 42 | 43 | ### Previous contributions 44 | 45 | List 5 open source contributions you’re proud of. This doesn’t have to be code contributions. This doesn’t have to be contributions to Wagtail. This can be pull requests, blog posts you’ve published, feedback you’ve given to someone else about their work, a description of your involvement with specific communities, or issues you’ve reported on projects. 46 | 47 | Links can be provided where relevant but aren’t mandatory. All we want is for you to demonstrate your understanding of open source etiquette, and interest in contributing. 48 | 49 | ## Project overview 50 | 51 | ### Project information 52 | 53 | - Link to relevant project idea if appropriate 54 | - Desired project duration: confirm 90h, 175h, 350h based on which project or original idea you’re proposing. 55 | 56 | ### Project description 57 | 58 | - Clearly state the problem you aim to solve or the feature you plan to implement. 59 | - Discuss the relevance and importance of this problem or feature within the context of the chosen open-source project. 60 | - Explain the benefits of your proposed solution to the project and the broader open-source community. 61 | 62 | ### Project goals 63 | 64 | - List the main goals and objectives of your project. 65 | - Break down your project into specific, measurable, achievable, relevant milestones. 66 | 67 | We particularly appreciate defining milestones that are easily measurable (clear way to tell whether the given task has happened or not, and to what extent). 68 | 69 | To make your proposal stand out, highlight a few possible stretch goals which might not be fundamental to the project’s success but would align well with your personal skills or interests. 70 | 71 | ### Technical details and approach 72 | 73 | - Describe the technical aspects of your project, including tools you plan to use. 74 | - Explain your approach to solving specific problems you’ve already researched. 75 | - Convey for which aspects you expect to leverage existing skills, and where you expect to have to learn more. 76 | 77 | ### Deliverables 78 | 79 | - List the expected project deliverables, such as code, documentation, and demos. 80 | - Describe how you plan to ensure the quality of your deliverables, including testing, code reviews, and documentation. 81 | 82 | ### Community Involvement 83 | 84 | - Explain how you plan to engage with the open-source community, including attending meetings, participating in discussions, and collaborating with mentors and other contributors. 85 | - Discuss your plans for maintaining your project and contributing to the open-source community after the GSoC program ends. 86 | 87 | ## Timeline 88 | 89 | Revise your proposed goals, learning requirements, deliverables, and community involvement tasks into a timeline for the project. This can be week-by-week or more high level across the 4 key periods of GSoC. 90 | 91 | ### May 1 - 26 – Community Bonding Period 92 | 93 | ### May 27 – July 12 – First half of coding 94 | 95 | ### July 12 - August 19 – Second half of coding 96 | 97 | ### August 26 - September 2 – Final week 98 | 99 | — 100 | 101 | Remember to proofread your application, adhere to Google’s guidelines, and submit your application as a PDF on [https://summerofcode.withgoogle.com/](https://summerofcode.withgoogle.com/) before the deadline. Good luck! 102 | -------------------------------------------------------------------------------- /2024/expression-of-interest-emails.md: -------------------------------------------------------------------------------- 1 | # Emails sent to people on the "Expression of Interest" list 2 | 3 | Hi 👋 Wagtail GSoC admin here – just wanted to confirm we are officially taking part in Google Summer of Code this year. We have less availability from organization administrators and mentors than usual, hence the slow updates. 4 | 5 | Please make sure to check out our latest list of project ideas (https://github.com/wagtail/gsoc/blob/main/project-ideas.md), with two new options with more mentors which we hope will be compelling for a lot of people. 6 | 7 | A great way for applicants to stand out will be to demonstrate awareness of the current direction of Wagtail as a project. Consider joining events like our What’s New in Wagtail Webinar, https://wagtail.org/blog/whats-new-in-wagtail-cms-march-2024/. 8 | 9 | This will be my last contact over email – for future updates, be sure to subscribe to Wagtail GSoC Discussions: https://github.com/wagtail/gsoc/discussions. 10 | -------------------------------------------------------------------------------- /2024/proposal-draft-reviews.md: -------------------------------------------------------------------------------- 1 | # Wagtail GSoC 2024: proposal draft reviews 2 | 3 | Use this form to share your draft proposals in Google Docs, with mentors for review. This form is only for _draft_ proposals – final proposal need to be submitted on , or they won’t be considered. 4 | 5 | If you’re not sure where to start, we provide an optional template for applications: [Wagtail GSoC 2024 | Application template](./application-template.md). If you don’t use this template, still make sure to follow Google guidance on [Writing a proposal](https://google.github.io/gsocguides/student/writing-a-proposal). 6 | 7 | - Make sure your document is set to "Anyone on the Internet with the link can comment". 8 | - Mentors will review proposals sent up to April 1st, on a "first come first served" basis. 9 | - You may submit your proposal for review twice: once for an initial review, and again for a final review. 10 | - To request feedback about a specific aspect of the proposal, use Google Docs comments to indicate where you wish the reviewer to give feedback. 11 | 12 | To ask questions about the projects, use: 13 | 14 | - [Q&A: Alt text capabilities project idea](https://github.com/wagtail/gsoc/discussions/120) 15 | - [Q&A: Low-carbon accessible project templates](https://github.com/wagtail/gsoc/discussions/122) 16 | -------------------------------------------------------------------------------- /2025/README.md: -------------------------------------------------------------------------------- 1 | # 2025 2 | 3 | ## Organization Program Application 4 | 5 | By submitting this form, Wagtail will be applying to be considered for inclusion in Google Summer of Code 2025. The content here, plus the contents of the Organization Profile and Organization Questionnaire, will be reviewed by Google Program Administrators. 6 | 7 | ### Ideas List 8 | 9 | https://github.com/wagtail/gsoc/blob/main/project-ideas.md 10 | 11 | ### Mentors 12 | 13 | 7 14 | 15 | ### Number of students / GSoC contributors that your org accepted into GSoC 2024 16 | 17 | 2 18 | 19 | ### Number of those participants from GSoC 2024 that are still active in your community today? 20 | 21 | 1 22 | 23 | ## Payment request form 24 | 25 | Submitted by Thibaud Colas on 2025-05-14, based on the [Open Source Collective instructions](https://docs.oscollective.org/campaigns-and-partnerships/google-summer-of-code), then contacted Open Source Collective. 26 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2023 Wagtail 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /organizer-guide.md: -------------------------------------------------------------------------------- 1 | # Organizer guide 2 | 3 | Thanks for being a GSoC Org Admin! The buck stops here. You’re the organizer of this year’s Wagtail GSoC. You’re responsible for the overall success of the program. You’re the point of contact with Google, all of the mentors, and all of the candidates, contributors, interns. 4 | 5 | ## Getting started 6 | 7 | - [ ] Read through the [GSoC Mentor guide](https://google.github.io/gsocguides/mentor/). 8 | - [ ] Read through the [GSoC Contributor guide](https://google.github.io/gsocguides/student/) 9 | - [ ] Read [GSoC Organization Admin Tips](https://developers.google.com/open-source/gsoc/help/oa-tips) 10 | - [ ] Meet all of the mentors you will be working with this year. 11 | - [ ] If there aren’t enough mentors (including support and backups), recruit more. 12 | 13 | ## Time commitment 14 | 15 | Here are expected time commitments for GSoC mentors and organizers. As a list: 16 | 17 | | Role | Time commitment (estimated) | 18 | | -------------------------------------------------- | --------------------------- | 19 | | Community application organizer | 2-5h | 20 | | Organisation before application period | 5-10h | 21 | | Contributors support before applications | 10-25h | 22 | | Contributors support during applications | 10-25h | 23 | | Organization administrator / Community coordinator | 1-2h / week | 24 | | Support project mentor | 1-2h / week | 25 | | Lead project mentor | 2-5h / week | 26 | 27 | ## Resources 28 | 29 | - [wagtail.org/gsoc/](https://wagtail.org/gsoc/) – this repository 30 | - [wagtail.org/gsoc-apply/](https://wagtail.org/gsoc-apply/) – our expression of interest form 31 | - [wagtail.org/gsoc-guide/](https://wagtail.org/gsoc-guide/) – contributors guide 32 | - [wagtail.org/coc/](https://wagtail.org/coc/) – Wagtail Code of Conduct 33 | -------------------------------------------------------------------------------- /project-ideas.md: -------------------------------------------------------------------------------- 1 | # Project ideas 2 | 3 | ## Content Security Policy compatibility 4 | 5 | ### Summary 6 | 7 | Wagtail is close to being compatible with strict [Content Security Policies](https://developer.mozilla.org/en-US/docs/Web/HTTP/CSP) (CSP). With one final push, we can get fundamental features all compatible with CSPs, document support, and treat any gaps as bugs. 8 | 9 | For more information, see: 10 | 11 | - [CSP compatibility issues #1288](https://github.com/wagtail/wagtail/issues/1288) 12 | - [A list of widgets breaking strict Content-Security-Policy (CSP) directives #7053](https://github.com/wagtail/wagtail/issues/7053) 13 | - [Wagtail Stimulus Adoption Schedule (2022-25) 🎛️](https://docs.google.com/spreadsheets/d/1LdrXlj8OeCWy3B_moYZ-ynhfZZtFVHPahG9GFoT-XBs/edit). 14 | 15 | ### Expected outcomes 16 | 17 | - Addressing any remaining CSP issues in Wagtail. 18 | - Providing official recommendations for compatible CSP settings. 19 | - Ensuring essential functionality works with a strict CSP. 20 | - Documenting or backlogging all CSP-related issues. 21 | - Adding a strict CSP to wagtail.org. 22 | 23 | ### Implementation 24 | 25 | This will require reviewing existing issues and technical discovery work to devise a plan for addressing them. Understanding options in [django-csp](https://github.com/mozilla/django-csp), and possibly trialing any changes with [core Django CSP support](https://github.com/django/django/pull/18215). 26 | 27 | The changes required will be a mix of front-end and backend work, and require expertise with security fundamentals to understand what is needed. 28 | 29 | ### Skills 30 | 31 | - Django 32 | - JavaScript 33 | - Security headers 34 | - CSP 35 | - Cross-site scripting 36 | - Technical writing 37 | 38 | ### Mentors 39 | 40 | - Lead: TBC - Sage Abdullah 41 | - Support: TBC 42 | - Support: TBC 43 | 44 | ### Size 45 | 46 | Expected size of project approximately 350 hours. 47 | 48 | ### Difficulty rating 49 | 50 | High 51 | 52 | ## Grid-aware websites 53 | 54 | ### Summary 55 | 56 | We want to trial the [grid-aware websites](https://wagtail.org/blog/reflections-on-grid-aware-websites/) concept on a real Wagtail project: the [wagtail.org website](https://wagtail.org/). This will involve understanding what grid awareness means for websites, how to implement it with Wagtail, and how to measure the website’s energy use depending on different adaptations. 57 | 58 | ### Expected outcomes 59 | 60 | - A grid-aware version of the wagtail.org website. 61 | - A blog post explaining the process and outcomes. 62 | - A report on energy use of different website front-end and back-end components. 63 | - A set of recommendations for other Wagtail websites to become grid-aware. 64 | 65 | ### Implementation 66 | 67 | This is highly dependent on the outcome of the ongoing grid-aware websites project, which is currently under way. More information will be available in March 2025. 68 | 69 | ### Skills 70 | 71 | - JavaScript 72 | - Django 73 | - Cloudflare workers 74 | - Digital sustainability 75 | - Performance auditing 76 | 77 | ### Mentors 78 | 79 | - Lead: Thibaud Colas 80 | - Support: TBC 81 | - Support: TBC 82 | 83 | ### Size 84 | 85 | Expected size of project approximately 350 hours. 86 | 87 | ### Difficulty rating 88 | 89 | High 90 | 91 | ## Project proposal: your own idea 92 | 93 | You can also propose your own idea. Your proposal should: 94 | 95 | - Have a concrete task. 96 | - Give a solid idea of what will constitute success. You tell us. 97 | - Present a detailed design specification. 98 | - Give insight into who you are. If you propose something ambitious, convince us that you are up to the task. 99 | - Give insight into your previous projects and experience. 100 | - Tell us about your experience with Python/Django/Wagtail. 101 | - Provide a schedule, including a detailed work breakdown and major milestones. 102 | - Contain your motivation and curriculum vitae. 103 | 104 | Here is an example of [an accepted proposal](https://gist.github.com/chrismedrela/82cbda8d2a78a280a129) on Django. 105 | 106 | Note: 107 | 108 | - The project ideas above are starting points for your submission, but aren’t enough by themselves. You’ll need to come up with a more complete project plan, and use your own words. 109 | - Do not feel limited to the project ideas below. 110 | - If you have a project idea not listed, please direct message the [organisation admins](#organisation-admins). They can test the project eligibility and pair you with a mentor for initial feedback. 111 | 112 | Project proposals should fall into one of three categories: 113 | 114 | - Work on Wagtail itself. The core product. 115 | - Work on tools to support Wagtail. Example: Editor guide as a Wagtail website. 116 | - Wagtail third-party libraries. Example: [Wagtail Live](https://github.com/wagtail/wagtail-live) is a GSOC 2021 project. 117 | 118 | The project you propose should be: 119 | 120 | - Something useful for the Wagtail project 121 | - A single well-scoped project 122 | - Achievable within the time of GSoC 123 | - And something the core developers can help mentor you on. 124 | 125 | ## Template: project idea title 126 | 127 | ### Summary 128 | 129 | ### Expected outcomes 130 | 131 | ### Implementation 132 | 133 | ### Skills 134 | 135 | ### Mentors 136 | 137 | - Lead: TBC 138 | - Support: TBC 139 | 140 | ### Size 141 | 142 | Expected size of project approximately 350 hours. 143 | 144 | ### Difficulty rating 145 | 146 | Low / Medium / High 147 | --------------------------------------------------------------------------------