I, too, am fine with a single repo, as long as the logical distinction is
still there between presentation, processing, and database layers.  I agree
that the backend issue is something that requires more thought and
development, and that we should provide the "API-like" code that has been
briefly mentioned allowing for both a complex database backend as well as a
simple BIOM backend.


On Wed, Jan 22, 2014 at 9:16 AM, josenavas <notifications@github.com> wrote:

> In qiita_pet/webserver.py:
>
> >
> >  class MainHandler(BaseHandler):
> >      '''Index page'''
> >      @tornado.web.authenticated
> >      def get(self):
> >          username = self.get_current_user()
> > -        SQL = "SELECT DISTINCT analysis_name, analysis_id FROM qiita_analysis \
> > -        WHERE qiita_username = %s AND analysis_done = true ORDER BY analysis_name"
> > -        pgcursor = postgres.cursor(cursor_factory=DictCursor)
> > -        pgcursor.execute(SQL, (username,))
> > -        completedanalyses = pgcursor.fetchall()
> > -        pgcursor.close()
> > -        if completedanalyses == None:
> > -            completedanalyses = []
> > -        self.render("index.html", user=username, analyses=completedanalyses)
> > +        SQL = """SELECT DISTINCT analysis_name, analysis_id FROM qiita_analysis
>
> Yes, my concern was that QiiTa-pet have the three layers: presentation
> (web), logic and storage (SQL queries). I am working in a refactor that
> unifies the three repos into one, but I'll keep the three layer separation
> (QiiTa-pet, QiiTa-ware and QiiTa-db) within that repository.
>
> QiiTa-pet will consist only on web front-end. Anything that it needs, will
> be a python function call to QiiTa-ware.
> QiiTa-ware will contain all the logic. It will fire IPython parallel jobs
> when necessary and it will make any necessary computation. If it needs some
> data, it will ask QiiTa-db for it.
> QiiTa-db will manage all the storage. It will provide different back-ends:
> one of them will be all the DB development that we are currently doing.
> Another one will be to just serve the data from files. Since QiiTa will the
> recommended way of running QIIME 2.0.0 I think that it makes sense to not
> to force the user to install a DB backend, only for those users that are
> managing huge amount of data, as we are doing.
>
> I'm planning to get the project structure ready for next week meeting.
> Feel free to ping me with any question!
>
> —
> Reply to this email directly or view it on GitHub<https://github.com/qiime/QiiTa-pet/pull/33/files#r9080144>
> .
>