TAP aims to provide tools to easily create and deliver mobile tour applications in a museum setting. Content creation is performed in the content management system, Drupal. TAP tours are exportable into an intermediate format, TourML, which can then be used as pluggable bundles for mobile applications.
TAP provides a way for non-technical museum staff to assemble a wide range of mobile experiences without needing to know any of the underlying technical details of the Web or mobile technology. In addition to the means for assembling content, TAP in its current state also provides user interfaces for Web-based mobile tours and simplenative applications for an iPod-based tour.
Freely available tools and standards are essential to the museum community to promote the adoption of best practices, to facilitate collaboration, and to encourage the creation of potential avenues for future content sharing. IMA’s initial work with the TAP authoring tool includes support for an early version of the TourML specificationand offers a functional, but incomplete, proof-of-concept, demonstrating how such a system might work.
Since its release, the TAP system has been successfully adopted and deployed by a few independent developers—including other major museums—and has served as a model and example code for a number of other implementations. In its current state, TAP provides a workable tool for museums with significant skills in software development and awillingness to use the system in its entirety.
As part of the IMLS grant the current version of TAP will be modified to support the TourML specifications that are recommended by the community.
Git Repo: git.drupal.org:sandbox/cangeceiro/1593564.git
Sandbox: http://drupal.org/sandbox/cangeceiro/1593564
Project page: http://drupal.org/sandbox/cangeceiro/1593564
Drupal 7.x
more info available at http://www.tapintomuseums.org/
| Comment | File | Size | Author |
|---|---|---|---|
| #42 | coder-results.txt | 7.11 KB | klausi |
Comments
Comment #1
pgogy commentedHello,
It helps to add a link to your project page (I wasn't sure if TAP was the same as TAP CMS).
Thanks
Pat
Comment #2
patrickd commented@pgogy they've both the same description ;)
@cangeceiro
As installation and usage instructions are quite important for us to review, please take a moment to make your project page follow the tips for a great project page. Also create a README.txt that follows the guidelines for in-project documentation.
For contributing distributions to drupal.org, you should include it as installation profile and put your installation profile's data into the root of your GIT repository.
Should have a structure like
/tap.info
/tap.profile
/tap.install
/modules/...
We do really need more hands in the application queue and highly recommend to get a review bonus so we can come back to your application sooner.
regards
Comment #3
pgogy commented@patrickd that's how I worked it out, but I had to dig a little - Also - is ventral down? Kept getting stuck at 33% for me.
Comment #4
patrickd commentedup again, seems like drupalcs doesn't like a single .info file without any .module in repo root
Comment #5
pgogy commented@patrickd Should I tell @klausi?
Comment #6
cangeceiro commentedPushed code that finishes up the install profile
Comment #6.0
cangeceiro commentedadded project page
Comment #7
FranciscoLuz commentedHi,
I did a manual review on your module. Here are some notes.
Comment #8
FranciscoLuz commentedForgot to change the status.
Comment #9
cangeceiro commentedI realize the indentation is 4 spaces instead of two which is in the drupal coding standards. However we have a team of 8 developers from several institutions working on this project and that is the indentation standard set forth by this group of developers. aka im not going to be able to change that just for drupal.org. If this is a deal breaker then I am afraid we will just have to withdraw the application for full project status. The other issues can be addresses but I am not putting forth the effort until someone can clarify on the issue of indentation.
Comment #10
patrickd commentedCode formatting should not be a blocker, we like to have it, but you it's not mandatory.
Comment #11
cangeceiro commentedThen could someone possibly provide me with a concise list of blockers on this project that are preventing a full project release. We are very close to releasing the first stable release of this module and one of the milestones we have hoped to have with this stable release is a drupal.org distrobution to coincide with the release of version 2.0
Comment #12
cangeceiro commentedfyi i fixed the branch on the module. so you will need to checkout 7.x-2.x now
Comment #13
cangeceiro commentedAny update on the status of this?
Comment #14
mpdonadiocangeceiro, if you get a Review Bonus (http://drupal.org/node/1410826) the project will get quicker attention from those who do the actual promotion to full project.
There is also lot to this.
I am noticing a fair amount of inconsistencies with missing and mis-formated DocBlocks.
I am noticing instances of directly accessing field values (eg, in tap_webapp_preview()) instead of using field_get_items(). GIven the size of the project, I can't tell if this is an oversight or lack of familiarity with this portion of the API.
I am seeing some leftover dpm() in the code. These need to be removed.
I am not seeing a hook_uninstall() in the tap_graphviz() sub-module to clean up variables. Same for tap_webapp. I haven't gone through everything, though.
Pretty sure that this would be kicked back b/c of the dpm() and the variables (and probably the DocBlocks), so I am setting this to needs work.
Comment #15
cangeceiro commentedjust committed 6 months worth of work back to the sandbox
Comment #16
cangeceiro commentedthat last commit also includes implementations of hook_uninstall and ensuring any debug code has been removed.
Comment #17
aendra commentedThis looks great -- will do a full code review over the next couple hours.
Comment #18
aendra commentedAutomated review
FWIW, most of these are due to the fact you have a lot of sub-modules inside your main module. I'd say the function naming warnings can probably be ignored.
This automated report was generated with PAReview.sh, your friendly project application review script. You can also use the online version to check your project. You have to get a review bonus to get a review from me.
Manual review
Ooh, I love installation profiles! This looks pretty rad.
What a massive project -- such a cool concept, though! I'll make sure to mention this to all the people I know who do this kind of work. :)
Marking as Needs Work, though -- beyond the stuff related to the .info files, I'd like it if someone else looks it over for RTBC; it's a lot of code (And it seems I'm the first really thorough manual review in several months). You're definitely getting there, though! :)
Comment #19
cangeceiro commentedWe have been working specifically on the web app lately to get it polished up and stable. So these updates have been pushed. I also removed php from the .infos as recommended. As far as the version numbers in the .info's im a little hesitent to pull these at the moment. Currently we are hosting the modules on github and users are actively downloading it from there. We are working out of the github repo and copying it over to the drupal repo. So I don't want to break it for those users until it has passed approval here.
Comment #20
cangeceiro commentedI want to follow up on getting this review thru. My schedule should afford me a little bit of time in the next week or two to work out any issues that are standing in the way of getting this profile approved. Specifically we would like to make a push to get this on Drupal.org before some upcoming presentations. Sessions have already been approved for Museums and the Web (April 17-20) http://mw2013.museumsandtheweb.com/proposals/tourml-tap-open-source-tool... and Drupalcon Portland http://portland2013.drupal.org/session/tap-museums
Comment #21
mpdonadioYou should really try to get a review bonus to expedite things.
Do you know what day you are doing your presentation at MWeb? I think I am just there on Wednesday and would like to stop by if I can.
Comment #22
cangeceiro commentedI won't be in attendence for the MW presentation. Gray and Kyle from our team will be doing that one. They will be there all week though if you want to track them down. If you private message me I can give you contact info.
Comment #23
mitchell commentedI tried to test 7.x-2.x with simplytest.me, but it failed at the 'Verify requirements' install phase. There wasn't any more info, but it's supposed to work with install profiles. I tried looking over the code, but the cause didn't pop out. Would be happy to try again in the future.
Comment #24
cangeceiro commentedAh, yes it looks like i had a name space conflict. Pushed a commit that resolves this, which worked for my local copy, but simplytest.me didnt seem to take the update.
Comment #25
balsamaRunning just the tap module (none of the other submodules) through the coder module returned ~1700 warnings. Looks like most of them are minor formatting and comment issues, but there is at least one critical (line 899 unfiltered text sent to drupal_set_message()) and 35 "normal" warnings.
Fixing all of these would be a great place to start. Looks like a great project. Good luck with it.
Comment #26
cangeceiro commentedits officially been one year since this project request was posted. I ran the modules thru coder again and did not see anything that should be a deal breaker, but went ahead and addressed the issues.
Comment #27
Gaelan commentedThe "critical" status is reserved for projects which, for the last 4 weeks, have been in the "needs review" status and haven't gotten a response.
Comment #28
kscheirerThis project is incredibly hard to review!
Your code style is sloppy, lots of string manipulation and use of _GET variables - this was common in D5, but we've moved away from it for good reasons. The commenting is sparse and doesn't follow our code standards. None of that is a blocker for me though, although your users might complain later.
I'm setting this to needs work due to the namespace issues - really all the functions need to start with the modulename or _modulename or theme. Random utility functions are not allowed. We have to be this strict due to Drupal's non-OO nature and namespace conflicts are not policed by any mechanism aside from the coders following this pattern. You seem to mostly have this problem with utility functions. If you can fix this you'll get an RTBC from me.
tap.module
tap_s3.module
tap.export.inc
tap_graphviz.admin.inc
Comment #29
cangeceiro commentedthanks for the update. I have resolved the namespace conflicts in the utility functions.
Comment #30
kscheirerComment #31
kscheirerThe Libraries API module is a recommended method for adding 3rd party dependencies without directly including the code on Drupal.org.
This also seems to apply to all the libraries in modules / tap / tap_webapp / js / external / :
----
Top Shelf Modules - Enterprise modules from the community for the community.
Comment #32
cangeceiro commentedTap-0.1.0.js is not third party code. That is a grunt project we developed and maintain in a separate repo and only include the compiled version in the tap_webapp module. Further more, because the web app is not coupled to drupal it has to include its dependencies.
Our goal with introducing TAP as an install profile was to make the installation process less complicated and more accessible for other museums with small or non existent tech staff. With this in mind decoupling the web app from TAP would make this effectively useless to this audience. So if thats an issue and the barrier to entry then I believe its in our best interest to just remove this application.
Comment #33
kscheirerThanks for the explanation!
Tap-0.1.0.js is fine, but we're not allowed to host those other project on d.o, can you use the Libraries API instead? Unfortunately that is a blocking issue.
We can make exceptions if they have the right license (see https://drupal.org/node/422996), but even then it's nice to use Libraries so users can store their code wherever they like and it will prevent duplications.
----
Top Shelf Modules - Enterprise modules from the community for the community.
Comment #34
cangeceiro commentedTap-0.1.0.js is just the compiled version which still includes all of those dependencies. the other files are just in there because its linked to another repository. At the core of TAP is the TourML specification which is an industry set xml standard for museum tours. So the tap web app is not tied in any way to drupal and is not used by all museums in conjunction with drupal. Thus making it impossible to integrate it in with the libraries module. So the web app is a standalone backbone application that communicates with drupal via the TourML xml end point that the tap module provides.
So really the only way we could even accomplish this is to remove the webapp all together
Comment #35
kscheirerOk, not sure what the best way to handle this is.
Comment #36
sreynen commentedHi cangeceiro,
3rd party code definitely needs to be removed. That's not even a condition of full project access; it's something you agreed to before getting Git access on Drupal.org for sandbox projects. Here's the policy in more detail:
https://drupal.org/node/422996
As far as removing the whole tap_webapp module, it's not clear to me why you couldn't build that without the 3rd party code included directly, but if that's the case I think you're right that removing the module is better than including a broken module.
Comment #37
cangeceiro commentedFor the sake of ease of maintenance I would like to move these modules into git submodules anyway. Would reworking the repo so that the tap modules are linked to the github repo via submodules and the d.org repo would just be the code for the profile pose any problems?
Comment #38
sreynen commentedcangeceiro, that should be fine as far as Drupal.org policy, thought it may hurt usability somewhat (not everyone knows how to use Git submodules). But if you're okay with that, I think it's fine.
Comment #39
cangeceiro commentedI just removed the webapp. There is configuration for users to point tap to an instance of the webapp so it will just require a little configuration. I think im fine with that.
Comment #40
kscheirerLooks good to me, thanks!
----
Top Shelf Modules - Crafted, Curated, Contributed.
Comment #41
klausiI'll look at this now in the Project applications sprint
Comment #42
klausiSorry for the delay, but you have not listed any reviews of other project applications in your issue summary as strongly recommended in the application documentation.
Review of the 7.x-2.x branch:
This automated report was generated with PAReview.sh, your friendly project application review script. You can also use the online version to check your project. You have to get a review bonus to get a review from me.
manual review:
But apart from that major Drupal best practice violations I could not find a critical application blocker, so ...
Thanks for your contribution, cangeceiro!
I updated your account so you can promote this to a full project and also create new projects as either a sandbox or a "full" project.
Here are some recommended readings to help with excellent maintainership:
You can find lots more contributors chatting on IRC in #drupal-contribute. So, come hang out and stay involved!
Thanks, also, for your patience with the review process. Anyone is welcome to participate in the review process. Please consider reviewing other projects that are pending review. I encourage you to learn more about that process and join the group of reviewers.
Thanks to the dedicated reviewer(s) as well.
Comment #43.0
(not verified) commentedadded sandbox link
Comment #44
avpadernoComment #45
avpaderno