Hi, your application looks pretty good. As Daniel mentioned, it would 
help to have more detailed plans.

I think you are underestimating how complicated each task will be. 
Implementing the crate search filter and hierarchical crates would be a 
reasonable project scope for GSoC.

It would be better to implement the search filter first. Judging from 
the comments on https://github.com/mixxxdj/mixxx/pull/726, hierarchical 
crates would be quite complex to implement well. On the other hand, the 
crate search filter is a straightforward idea and would not require any 
GUI design, just modifying the existing search functionality. In 
addition to being less work, I think it would be easier to work on this 
feature at the same time as work is finishing to merge the GUI redesign 
from last year without developing lots of merge conflicts. Also, if you 
start with the less complex feature, I think the chance that we will 
have at least some useful, mergeable code from your GSoC project that 
quickly makes it into a Mixxx release would be good. If we could get a 
fully functional crate search filter merged before midterm, that would 
be excellent. That would leave more time for the complex hierarchical 
crate feature.

I have briefly considered what changes would be required to implement 
crate searching myself. It will not be super easy (otherwise I would 
have done it already), but I don't think it would be too difficult 
either. The current database schema makes it easy to implement the 
existing search filters. However, the way crates are stored in the 
database is not very conducive to that. Either the database schema will 
need to be modified or the search filtering code will need to be heavily 
refactored to implement this. I do not know which approach would be 
wiser. Maybe Uwe or Daniel could provide a better idea. I suggest 
opening your Mixxx database in DB Browser for SQLite ( 
http://sqlitebrowser.org/ ) while reading how the search filters are 
processed in C++ to get a better idea of what will be required.

As for the hierarchical crates, read through the comments on 
https://github.com/mixxxdj/mixxx/pull/726 to get an idea of the 
complexity of the feature. I think it would be a good idea to have a 
general plan for how to implement both the crate search filter and 
hierarchical crates before you start coding so that you do not have to 
extensively refactor the search filter code to work together with 
hierarchical crates.

I think the idea behind the "smart crates" feature is already 
implemented in the pending library redesign branch from last year's GSoC 
under a different name and interface. Try checking out that branch 
(refer to https://gist.github.com/piscisaureus/3342247 for how to set 
that up) and playing with what is already there. It has a feature that 
lets users save and restore search queries. I do not know if it has the 
optimization of caching the results of saved queries implemented though. 
If you find time at the end of your GSoC project (or afterwards if you 
would like!), optimizing the saved queries could be a nice polishing touch.

On 03/29/2017 02:55 PM, Daniel Schürmann wrote:
> Hi Anast,
>
> you Application looks good so far but it requires some more details.
>
> I think you should target your project on top of our new library GUI
> design which will be merged once Mixxx 2.1 is released.
> https://github.com/mixxxdj/mixxx/pull/1117
>
> A GUI Mock-up/picture showing the planed feature would be nice.
>
> You should also have a close look on:
> https://github.com/mixxxdj/mixxx/pull/726
>
> What is good, what can be improved?
>
> There are some different natures of smart crates discussed.
> https://bugs.launchpad.net/mixxx/+bug/661460
> What will you implement exactly.
> What can the user finally do with it and what not.
>
> Kind regards,
>
> Daniel
>
>
>
>
>
>
>
>
>
>
> Am 29.03.2017 um 20:40 schrieb Anast Gramm:
>> Name: Grammenos Anastasis
>> Nationality: Greece
>> School: Aristotle University of Thessaloniki
>> Department: Computer Science
>> Link: [http://www.csd.auth.gr/en/]
>> Semester: 8th
>>
>> 1 Intro
>> =======
>>
>>   Hello, as you may know from my previous email in this list, I'd like
>>   to participate at GsoC 2017. This is my final application.
>>
>>
>> 2 Mixxx development
>> ===================
>>
>>   So far I managed to set a running developer environment for the
>>   project using emacs, gdb dubugger and rtags. I have also downloaded
>>   and set up eclipse and QtCreator in case I need them.
>>
>>   I am able to run tests, and currently working on a bug.
>>   [https://bugs.launchpad.net/mixxx/+bug/1663444]
>>
>>   I'll issue a pull request when I have time, since now I am working
>>   most of the day in a temp job. (It ends soon)
>>
>>
>> 3 Goals
>> =======
>>
>>   I'd like to improve mixxx's crate functionalities. For that I plan to
>>   improve the database behind it to be able to support hierarchical
>>   organisation and search filters. And also set the ground for future
>>   expansion. I will also try to implement some kind of smartcrates e.g.
>>   crate Oldies will have all songs released < 1980, and keep it synced
>>   with the users library.
>>
>>
>> 4 Timeline
>> ==========
>>
>> 4.1 May 4 - 30
>> ~~~~~~~~~~~~~~
>>
>>   For the first period, I'll be actively working on bugs and reading the
>>   code to get a broader understanding of the project's structure. I'll
>>   probably ask questions, so please bear with me. I'll focus on the
>>   database and the crate functionality for obvious reasons.
>>
>>
>> 4.2 May 30 - June 30
>> ~~~~~~~~~~~~~~~~~~~~
>>
>>   As a goal for the first evaluation, I want to have a working schema of
>>   the database to support the aforementioned crate expansions, and
>>   already start working on the hierarchy stuff.
>>
>>
>> 4.3 June 30 - July 24
>> ~~~~~~~~~~~~~~~~~~~~~
>>
>>   2 months in and the first nested crates will be available for testing
>>   in my branch. Work on the search filters will be near the end, mainly
>>   with UI stuff remaining. (like a new create search bar)
>>
>>
>> 4.4 July 28 - August 21
>> ~~~~~~~~~~~~~~~~~~~~~~~
>>
>>   Everything will be ready to get merged in MASTER, while smart crates
>>   will be my main focus. If everything goes well, I'll be faster than
>>   this plan and have more done by the end of the summer.
>>
>>
>> 5 Outro
>> =======
>>
>>   Feel free to ask me anything about anything, I usually am on IRC
>>   (nick: gramanas) or via this mail. I hope we get to work together!
>>
>> --
>>
>> Grammenos Anastasis
>>
>
> ------------------------------------------------------------------------------
> Check out the vibrant tech community on one of the world's most
> engaging tech sites, Slashdot.org! http://sdm.link/slashdot
> _______________________________________________
> Get Mixxx, the #1 Free MP3 DJ Mixing software Today
> http://mixxx.org
>
>
> Mixxx-devel mailing list
> Mixxx-devel@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/mixxx-devel
>

------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________
Get Mixxx, the #1 Free MP3 DJ Mixing software Today
http://mixxx.org


Mixxx-devel mailing list
Mixxx-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/mixxx-devel

Reply via email to