Projects: ======Projects====== Each project is a web app, a subdomain of voyc.com, stored in gitlab (previously github). === For Developers === [[projects:layout:layout]] - browser screen splitter [[projects:account:account]] - submodule, user management [[projects:fx:fx]] - submodule, library of game effects [[projects:icon:icon]] - submodule, library of icons [[projects:jslib:jslib]] - library of javascript tools [[projects:minimal:minimal]] - html, css, javascript for a minimal web app === Apps === [[projects:voyc:voyc]] - aka [[projects:geo:geo]], replaced by global and then by geo [[projects:global:global]] - previously voyc, before geo [[projects:samantha:samantha]] - AI webchat [[projects:classy:classy]] - comment classifier [[projects:sandbox:sandbox]] - experiment and demo [[projects:bahasa:bahasa]] - language [[projects:flash:flash]] - flash card memorization [[projects:guru:guru]] - random quote [[projects:mai:mai]] - language [[projects:plunder:plunder]] - game added atop voyc [[projects:sanskrit:sanskrit]] - language [[projects:robots:robots]] - multiple hardware projects [[projects:vote:vote]] - ranked choice voting [[projects:wordnet:wordnet]] - database only, sql version of Princeton's WordNet [[projects:model:model]] - starter project template [[projects:timeline:timeline]] - timeline [[https://docs.google.com/spreadsheets/d/19pIRXgSPT8AFUTCPh-eTPc8Ej9RInxtj518fo-t2HVs/edit?usp=sharing | projects checklist]] =====Developer Guidelines===== ====.gitignore==== robots.txt .well-known/* js.min css.min index.php ==== Duplicate Content ==== Most of our projects have a dev and a production version.\\ Example: * jslib.voyc.com * jslib.hagstrand.com These two sites have duplicate content.\\ We want to tell the search engines to index prod, not dev.\\ How do we do that?\\ ==option 1. robots.txt== User-agent: * Disallow: / This prevents the search engines from crawling the site.\\ But it does NOT prevent the search engines from indexing the site.\\ ==option 2. html meta== This means that prod and dev will have a different line in index.html.\\ How can I do this dynamically? The crawlers are probably scraping the HTML without preprocessing javascript or PHP. ==option 3. password== How do we do that? ==option 4. temporary dev environment== * Take care to not allow any links to the dev subdomains. - Note that the a2 cpanel domains page has the tag. - When starting server development, manually add the tag. - After completion, delete the worktree, and/or put up a fake page. - Maybe we only need one dev subdomain? ====git Structure==== ===Five Repository Groups=== ^ location ^ name ^ git ^ purpose ^ | gitlab | gitlab | voyc/proj.git (bare) | public git host | | a2 | voycgit | voycgit/proj.git | central git repository | | a2 | webprod | webprod/proj/.git | production web host | | a2 | webdev | webdev/proj/.git | server development | | local | webapps | webapps/proj/.git | local development | {{:projects:five_repositories.png?900|}} === Branches === gitlab, voycgit, and webprod have a master branch only.\\ webdev and webapps have a master branch and also a temporary feature branch. === Remotes === voycgit has no remotes.\\ gitlab has no remotes. \\ All other repositories have remote //origin// pointing to voycgit.\\ webprod also has remote //gitlab//.\\ get remote -v $ origin ssh://voyccom@az1-ss8.a2hosting.com:7822/home/voyccom/voycgit/jslib.git $ gitlab https://gitlab.com/voyc/jslib.git Note that use the ssh protocol; never the local protocol. ==== voyc git Workflow==== == refresh the local repo and worktree == git clone ssh://voyccom@az1-ss8.a2hosting.com:7822/home/voyccom/voycgit/vote.git git branch # make sure you're in the master branch git pull origin master git submodule foreach git pull origin master == start development == git branch popup # create a feature branch git checkout popup == development == git status git add . git commit -m 'New popup architecture' # version control git push origin popup # remote backup == pull in simultaneous development from server - ???? == git switch master git pull origin master git checkout popup git rebase master # merge modified master into popup branch, resolve conflicts here == complete development == git checkout master git merge popup git diff master..popup git branch -d popup git push origin master # push to central git push origin -d popup # delete branch from central == in webprod == git pull origin master git push gitlab master