User Tools

Site Tools


projects:projects

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

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
<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.

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
projects/projects.txt · Last modified: 2024/10/10 22:42 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