creating a collaboration platform (leveraging the django eco system)
DESCRIPTION
From the DjangoVillage 2014 event at Orvieto (Italy). These slides are generated PDFs from the original presentation on slides.com (powered by reveal.js). I apologize for the poor quality. See the original at http://slides.com/bittner/creating-a-collaboration-platformTRANSCRIPT
Agenda1. ModernFairyTale(WithALotOfGrim)2. WhyDjango?(IsForTheLonesomeHacker)3. Research(TheDjangoEcoSystem)4. Development(StrategiesForTheLonesome)5. RealWorldExample(TheDemoYouDeserve)
*{
*Disclosure:bluntDjangopropaganda
ModernFairyTale(WithaLotofGrim)
CollaborationinaNon-ProfitNightmareonClubStreet
1. Severalpeople,differentbackground,commongoal,differentapproaches
2. Volunteersstartenthusiastically(website)3. Awebsitealonedoesn'tcutit4. Documentschaos(e-mails,dropbox,etc.)5. Notransparency,slowresponse6. Finger-pointingleadstofrustration7. Peoplequit
IHaveaDream"...thatonedaytherewillbeefficientonlinecollaboration"
1. Websitealwaysup-to-date(foreveryone)2. Everyone(!)cancontribute3. Fullcontrolovercontentgoinglive4. Wecoach&publish(wedon'twrite!)5. Issuelists,workondocuments,updates6. Everyonetransparentlyinformed7. Everyoneishappy&feelsheard
Can'tWeSolveThisProblemEasily?
Cloudplatformsexist,buttheyaresomuch1. revenue/CRM/PMfocused2. clutteredwithfeatures3. restrictive&administrativebynature4. apaintousewithinconsistentUI's5. expensiveforlargeaudiences
Alternative=DIYsoftwaresolution
WokeUpSoakingWet1. Nomoneytospend2. Noprogrammingresources(exceptyourself)3. Noalternativesleft
Musttakeatechnologyforlonesomehackers
WhyDjango?(IsfortheLonesomeHacker)
TheLonesomeHackerJobDescription
Choosewebframework&ecosystemIdentifyusableextensions/pluginsIntegratethemintoasingleexperienceFixshortcomingsofsingleextensionsAddmissingextensionsDowebdesign
WhyDjangoIsfortheLonesomeHacker
1. Allpopularframeworkshavebrokenecosystems(Joomla!,Wordpress,Drupal,...)
2. Djangotoo(notworsethantheothers)3. Python=executablepseudocode4. Django=forperfectionistswithdeadlines
tryitcustomizereadcode
Morereadingat:jacobian.org/writing/why-django/
youtube.com/watch?v=n8KnFywpXOE
Research(TheDjangoEcoSystem)
ResourcesExtensions/Packages="Apps"inDjango
WhereDoIFindDjangoApps?
...
bigbrotherofnsa(google)
djangopackages.comdjango-apps.comelweb.co/33-projects-that-make-devcharm.com/pages/79-must-have-django-packagescode.djangoproject.com/wiki/DjangoResources
Components1. CMS2. Blog3. Newsletter4. Events&calendar
CollaborationFeatures1. Sociallogin&userprofiles2. Usergroups&spaces3. Issuelists4. DMS(orintegration)5. Wiki(orthelike)6. Discussionforum(orthelike)
WhattoLookatIndicatorsforGoodApps(Projects)
commitactivity/lastcommitcommitcountfewopen/lotsofclosedissuesfewornoopen/lotsofclosedPRsdecentdocumentationdemosystemand/orscreenshots
ProbablyGoodChoices
Forums
CMS+Blog+Wiki
django-cms+django-blog-zinniamezzanine
askbot(Q&A)misago(forum)
emencia-django-newsletter
django-todo
mayan(scanneddocs)django-media-tree
django-allauthpython-social-auth
Sociallogin
Newsletter
Documents+Assets
Issuelists
MissingChoicesNo(Usable)Ready-to-UseAppsYet
Usergroups&spaces(django-activities)Userprofiles(django-userena)Integrationofdropbox&friendsIntegrationofchat/phone/videoservices
Development(StrategiesfortheLonesome)
LonesomeHacker'sAdvice
Belazy Don'twriteaplatformfromscratchDon'twritenewappsfromscratch
BeautonomousScript&automateeverythingWritetestsbeforechangingcodePrepareforexchangingcomponents
MakeyourlifeeasierPushyourchangesintoofficialreposBuildonworkofothers&shareDeployearly-inProductionenv
MoreAdviceNo-brainers
InfrastructureascodeFigureouthowother(successful)projectsdoitgoogle.com/search?q=django+best+practices
QualityiskeyDrasticallyimprovebadprojectsquickly(orkickthem!)Investinyourownproject!(docs,pep8,packaging)
FocusonyourMVPDon'tgetoverwhelmedbythevastchoiceNotedowninterestingprojects&buildaroadmap
BiggestChallengesToCreateaUniqueExperience
1. Integratesingleapps2. Everyartifactreferable(user,group,article,
blog/wiki/evententry,issue,...)3. Simplified,unifieduserexperience(front-end
editingforeverything)4. Combineintranetandpublicworld(without
confusingusers)
ObviousConstraints&DutiesForCreatingaProduct
OneappmustbeleadingsystemIntegrateintothisapp(e.g.plugins)MassiveintegrationtestsMassivecautionupgradingapps
RealWorldExample(TheDemoYouDeserve)
djangoOrganicepipinstalldjango-organice
CoreAppsdjango-cms(leadingsystem)django-blog-zinnia(blog,events,jobs)emencia-django-newsletter
InterestingtoMentionApptype=projectgenerator+metapackageThemesasseparateappswithassetpipeline(Bootstrap,Sass,UglifyJS2)
djangoOrganiceLonesomePrinciplesObeyed
1. Documentation2. Easytostart&getitworking3. Scriptsfor(almost)everything4. Rolemodels:zinnia,pootle,...
Questions?(I'llTrytoGiveGoodAnswers)
PeterBittner,[email protected]@peterbittner
Thedreamlivesonatgithub.com/bittner/django-organice
@organice_io
THANKYOUforyourprecioustime!
ImageCreditshttps://www.google.com/search?q=nightmare+elm+street(similarimagesearch)https://www.google.com/search?q=django+unchained(similarimagesearch)http://welcometoclubsilencio.blogspot.ch/2010_04_01_archive.htmlhttp://www.morgenpost.de/kultur/article112144530/Wie-Maerchen-der-Gebrueder-Grimm-jugendfrei-wurden.htmlhttp://www.philanthropyconsulting.com/2014/01/dream/http://beartoons.com/wp-content/uploads/2011/10/Bearman-Cartoons-Occupy-Elm-Street21.pnghttp://www.bluesoft.net.pl/wp-content/uploads/2014/02/django-logo-e1392910534114.pnghttp://disfunctions.de/ubuntu/der-ubuntu-software-store-zukunftsmusik/http://www.celarity.com/how-to-write-a-standout-job-description/http://www.startupfreak.com/the-missing-piece-puzzle-company/http://www.licensinglinenews.com/Newsletter/Edition-48-August-2007/National-Code-of-Practice-for-Induction-for-Construction-Work-declared.aspxhttp://carriekish.com/tag/leading-questions/