User Tools

Site Tools


projects:projects

This is an old revision of the document!


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

projects checklist

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.
  1. Note that the a2 cpanel domains page has the <meta robots noindex> tag.
  2. When starting server development, manually add the <meta robots noindex> tag.
  3. After completion, delete the worktree, and/or put up a fake page.
  4. 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 
projects/projects.1726992740.txt.gz · Last modified: 2024/09/22 04:12 by jhagstrand

Except where otherwise noted, content on this wiki is licensed under the following license: Public Domain
Public Domain Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki