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