Google Summer Of Code 2018 Ideas

Ideas for the Google Summer Of Code 2018

This topic is a collection of project ideas for Google Summer Of Code, should we be accepted.

If you have any idea for a smaller/medium feature that would be “nice to have”, feel free to post it here. A reasonable explanation of the feature is minimum required. If you have a detailed plan/idea even better!

Here is a template for you:


Idea title

A summary of the idea here, what, why, benefits, risks, … the more tangible, the better!

  • Expected results: Summary of expected outcome
  • Milestones: A list of intermediate steps to take, if applicable
  • Skill level: …
  • Knowledge required: …

Let us know! Also, feel free to get inspired by the previous lists for 2017 and 2016.

Media/Asset Management Improvements

See RFC: Media Module Improvements / Extendability

Relaunch of the module with React, the project is currently in UI/UX research

Expected results:

  • A brand new module with a new UI
  • More flexibility (filtering, search, multi select, batch actions, …)
  • A good GraphQL API to manage the Assets

Skill level: Frontend, ReactJS

2 Likes

Better PHPStorm Plugin

Better support for Fusion / AXF, refactoring, code usage, …

Skill: JAVA

4 Likes

Neos Dashboard Manager

Create a flexible dashboard to make this old idea a reallity. This kind of dashboard can a really nice feature for Marketing (analytics). A single Neos instance can have multiple dashboard or per user dashboard. Marketing peoples can monitor page trafic, bouncing rate, form submission, … (integration with external Analytics), Technical people can monitor Neos package version, news feed, …

Skill: Frontend, ReactJS

4 Likes

Matomo (Piwik) intergration

Based on the Neos Google Analytics … but not sure if it’s a good candidate for a Google Summer of code :wink:

Skills: ReactJS, PHP (junior)

Side by side editing for dimensions

Yet an other good old project, that need a new start

Skills: Hard, PHP, ReactJS

3 Likes

GraphQL for React UI

Our React UI currently uses a mix of different specific APIs, there is a basic implementation of GraphQL for Neos.
The goal of this project would be to extend the implementation on the PHP side and get it working with the backend. Not every single endpoint must be replaced but a solid basis for replacing the old APIs with a common GraphQL API should be created.

Skills: PHP, React, GraphQL, medium/hard

3 Likes

REST-ful API

We would like to offer a REST API along the lines of contentful or prismic to access content stored in a Neos ContentRepository.

Skills: PHP, REST, HTTP, medium

1 Like

Welcome package

Flow has a welcome package that should brushed up in terms of style and functionality. It could include a UI based kickstarter for packages and models.

Expected results: Nicer Welcome package with better introduction, first-steps and maybe UI based kickstarter for packages and models.

Milestones: New Design, additional information for Flow newcomers, introduction, kickstart ui
Skils: PHP, HTML, CSS, easy

Rewrite Flow Reflection on Roave BetterReflection

Flow does a lot based on code reflection. This currently works based on the PHP language Reflection functionality, which has some drawbacks, most notably that classes need to be loaded for Reflection and hence the compilation step needs to happen in a separate process.

This could be improved by making use of https://github.com/Roave/BetterReflection

Expected results: Reflection of classes is achieved through the BetterReflection library, possibly without requiring a separate process for the step.

Milestones: Replace ReflectionService with a BetterReflection implementation, avoid running compile step in separate process

Skill level: hard

Knowledge prerequisite: PHP, Reflection

Flow Framework without database requirements

Reference: Could we build a version of Flow without doctrine orm / database requirement

You can’t start a Flow project, without having a database due to core entities such as routing, resources and security account

In the reference post I’ve collected research in the issue and pointed out the issues along with comments from core members that are giving more insigt into the issue.

Expected results: A (minimal) instance of Flow where you can develop a application with no need for local database.

Milestones:

  1. Introduce AccountInterface
  2. Move security into own package
  3. Move routing into own package and introduce a simple routing handler that doesnt require persisting
  4. Move into own package and introduce a resource management that can handle files locally with no need for persisting into a database
  5. Finally, move the whole persistence part into a own package incl. migrations
  6. Backward compatibility

Skill: PHP, Database migrations knowledge

Knowledge required: hard

A word about the task

This task is indeed a hard task and requries quiet some research, test and core knowledge. One important thing, and was discussed with @christianm in Slack, is that each milestone in the list, can be a task itself. That can make it easier to split up in smaller chunk and perhaps between more developers

2 Likes

GUI-Alternative for Neos’ maintenance (beside Command-Line)

Terminal commands are powerful but also difficult to use for less experienced developers/users.
This would make it easier to get started and thus significantly expand the user base - I guess.

GUI instead of
./flow flow:cache:flush --force
FLOW_CONTEXT=Production ./flow flow:cache:flush --force
rm Configuration/PackageStates.php

./flow node:repair

./flow neos.flow:package:rescan

./flow resource:clean
./flow resource:publish


./flow nodeindex:flush
./flow nodeindex:build   
./flow nodeindex:build --workspace live
...
...
1 Like

GUI-Alternative for Plugin-integration and maintenance

Same as above:
For expanding the user base a less abstract alternative to Terminal-commands and Yaml-Code constructions would be helpfully, I guess.

Versioning Solution for Content

This would be a great benefit, security gain and would be more user-friendly for editors.
Certainly a key-feature for many decision-makers.

Less hardware requirement

This would almost certainly expand the user base, build up a broader community of developers and positively influence decision makers.
Typo 3 has made it easier thanks to shared host requirements and 1Click-Install solutions.

Fine-adjustable search solution (besides ElasticSearch)

Flowpack.SimpleSearch is a great base.
But Results are only in node-type-content-snippets-context not in user-friendly Page-context.
ElasticSearch is great, but it is too complex for the average web presence and once again extremely resource-consuming.

(Also here:
All my suggestions are considered with the user’s, integrator’s or decision-makers glasses instead of the developer’s glasses.
Maybe there’s something in, that would be suitable for «Google Summer Of Code 2018» what could make Neos much better known, easier to use and even more successful.)

GUI for rights management

Perhaps the @stolle (if I remember right) solution has already been implemented. Lost track of it a little bit.
But a simple solution for the user rights on pages, contents also backend views/plug-ins would be very necessary.

GUI Solution for maintenance of users

Simple GUI solution for user maintenance:

  • rights (siehe oben)
  • create new
  • modify
  • deactivate
  • delete
  • password renewal

GUI Solution for maintenance of frontend-users

Same like above but for Frontend-User/Guests/Customers

Simple GUI solution for user maintenance:

  • rights (siehe oben)
  • create new
  • modify
  • deactivate
  • delete
  • password renewal

Solution to export/import a hole Website or parts of (template/nodeTypes/…)

I guess this would massively increase the attractiveness of Neos.

The high acceptance and wide user base from a CMS is probably directly related to the solutions like:

  • easy export of a complete page with content and layout
  • easy import of a complete page with content and layout
  • easy modification of a web page through different templates
  • export and import of the entire site layout (without content) as a template for reuse with other content or clean new cms on other server/in other projects

I know, the idea (@christianm) is to build from ground particular solution for needed target.
But to have a second more reusable approach could be a break even key-feature looked to most widely used and accepted CMS.


My suggestions do not shine through the finest elaboration or the knowledge of how such huge fields can be tackled at all. Sorry :new_moon_with_face:.
But maybe there’s something in there that helps.