This is an old revision of the document!
Table of Contents
Projects:
Projects
Each project is a web app, a subdomain of voyc.com, stored in github.
voyc - aka geo, replaced by global and then by geo
global - previously voyc, before geo
samantha - AI webchat
classy - comment classifier
layout - browser screen splitter
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
account - submodule, user management
fx - submodule, library of game effects
model - starter project template
jslib - library of javascript tools
timeline - timeline
Developer Guidelines
Search Engines
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.
git Workflow
Develop in webapps or webdev
recreate or refresh the worktree
git clone ssh://voyccom@az1-ss8.a2hosting.com:7822/home/voyccom/voycgit/jslib.git or git clone /home/voyccom/voycgit/jslib.git or git branch # make sure you're in the master branch git pull origin master git submodule foreach git pull origin master
create a feature branch, do your work, commit
git branch newfeature git checkout newfeature <make changes> git status git add * git commit -m 'New feature'
merge to master, delete feature branch
git checkout master git merge newfeature git diff master..newfeature git branch -d newfeature
push finished master branch up to voycgit
git push origin master
Publish in webprod
git pull origin master git push gitlab master
.gitignore
robots.txt .well-known/* js.min css.min index.php
Create Bare Central Git
cd ~/webprod/sandbox/sandbox/ git remote set-url origin ssh: https://git.voyc.com/barecentral/sandbox.git git remote set-url origin ssh:
cd ~/webprod/sandbox/sandbox/ git push
