Table of Contents
Projects:
Projects
Each project is a web app, a subdomain of voyc.com, stored in gitlab (previously github).
For Developers
layout - browser screen splitter
account - submodule, user management
fx - submodule, library of game effects
icon - submodule, library of icons
jslib - library of javascript tools
minimal - html, css, javascript for a minimal web app
Apps
voyc - aka geo, replaced by global and then by geo
global - previously voyc, before geo
samantha - AI webchat
classy - comment classifier
sandbox - experiment and demo
bahasa - language
flash - flash card memorization
guru - random quote
mai - language
plunder - game added atop voyc
sanskrit - language
robots - multiple hardware projects
vote - ranked choice voting
wordnet - database only, sql version of Princeton's WordNet
model - starter project template
timeline - timeline
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
<meta name='robots' content='noindex,follow' />
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 <meta robots noindex> tag.
- When starting server development, manually add the <meta robots noindex> 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 |
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
<make changes> 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