Ideas Page

This is the idea page for Cambá's Google Summer of Code Organization for students interested in our organization. If you have any doubt about them you can write to and we will be reaching you shortly

Vue Admin

Vue Admin is a Vue library that lets developers build frontend administration applications that run in the browser in a very easy way. It’s a work in progress started in August 2018.

The main idea behind this project is to ease the process of writing admin applications, letting you connect to any backend, providing an auto-generated user interface to create, edit, update and delete resources using Vuetify as the default user interface framework. It also comes with a customizable authentication view. As developers, we would like to grant as much customization as we can. That’s the reason why Vue Admin is currently written in small different packages (e.g.: core, authentication, store, validations, router, etc.) providing as much modularization as possible.

💡Resource Administration: actions & UI components

  • filters selection (by content, category, dates, etc.)
  • export resource entities (csv, xls, ods, etc.)
  • select and delete multiple items

An auto-generated view is simply a Vue component, provided by Vue Admin, where developers choose visual components to render specific fields for a resource view (e.g.: a date input for a birthday field, and so on). There’s currently support for text fields, numeric fields and date fields. Those fields are wrappers of Vuetify components that library users can import and use in their views. We’re looking forward to adding form inputs and controls:

  • selects
  • images
  • textareas
  • selection controls
  • file inputs
  • extend existent text fields
Requirements: Vue(life cycles, custom plugins), Vuex and Vuetify(desirable, not an impediment)
Complexity: Medium
Mentor: Santiago Botta

💡Library Modularization

The main goal behind modularization is to write small, clear and concise packages for a particular purpose.

Vue Admin source code is currently organized in different modules, each of which represents a library section where responsibilities of similar nature are contained. Most of those modules expose functionality that is used by Vue Admin’s core components. We intend to slice the current source code into different npm packages so that they can be easily replaceable with custom functionality.

  • Analyze dependencies between vue admin modules to determine modularization risks
  • Separate src directories in different lerna packages
Requirements: Vue(life cycles, custom plugins), Vuex and Vuetify(desirable, not an impediment)
Complexity: Hard
Mentor: Santiago Botta

Multi-Backend support

One of Vue Admin’s most important goals is to provide adaptability to any backend. This has been partially achieved when a client adapter was included to the authentication module. This adapter is a small piece of code that can be written within minutes using our template. The authentication module is pretty similar to the typical Vuex modules structure (state, actions, mutations and getters) but exportable types were added. These types play a significant role in the adapter: each one represents an action in the authentication module. With this in mind, Vue Admin assumes that those actions/mutations are being handled by an authentication vuex module. Therefore, whenever an action, mutation or getter is triggered, data flows through the adapter implementation letting users parse information accordingly.

An authentication adapter may vary depending on the client selection (e.g.: an axios client interface won’t work with a Python backend)

On the other hand, Vue Admin handles requests to a resources API of choice using vuex-crud. This library registers store modules and creates vuex actions, mutations and getters for resources. It also works with action, mutations and getter types but data manipulation during a response is very limited. We’re looking forward to applying the same adapter strategy to the resources module creation. This might involve working on a vuex-crud fork and extend Vue Admin’s behavior.

Requirements: JS, Vue, Vuex and Functional programming
Complexity: Hard
Mentor: Santiago Botta


A native white-label application built with NativeScript-Vue for community radios that supports live streaming, podcasts, programming schedule and social network sharing.

💡iOS support

The application currently does not officially support the export of iOS applications and we want to do everything that’s necessary to improve this multi-platform feature.

Technical description:

Nativescript does support it, but our current documentation does not cover it and it’s not working in the app’s current state yet. We need to fix this and all the features that may not be working in that platform. Additionally, the documentation and app generation scripts should be changed to support iOS building.

Requirements: iOS development, Vue and Nativescript
Complexity: Easy
Mentor: Facundo Mainere


Considering that the application is a white-label one, we want to give developers further alternatives to customize it beyond colors and a few logos. The idea is for the user to be able to write their own themes or select from a few pre-generated ones.

Technical description:

The layout of the app should be subject of a configuration file that defines where each of the components should appear, which colour they are and which of the variants of the components it should use. They may be wrapper components that respect the same API as the current ones but look different.

Requirements: Nativescript and Vue
Complexity: Medium
Mentor: Facundo Mainere

💡Native plugin for playback control

We would like to add a feature that’s similar to one of Spotify, in which the playback of the application can be controlled from a notification to reduce the amount of navigation needed to pause and resume the audio playback.

Technical description:

To accomplish this, first we will need to implement a Nativescript plugin. Right now there isn’t one that’s able to do it. Then it should be included into our Vue application.

Requirements: Nativescript, Vue, Native iOS and Android API
Complexity: Hard
Mentor: Facundo Mainere