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 > Mixxxfirstname.lastname@example.org > 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 Mixxxemail@example.com https://lists.sourceforge.net/lists/listinfo/mixxx-devel