MCPcopy Index your code
hub / github.com/Godotcam/goCamOpenSource

github.com/Godotcam/goCamOpenSource @v1.1.7

Chat with this repo
repository ↗ · DeepWiki ↗ · release v1.1.7 ↗ · + Follow
1,533 symbols 3,219 edges 245 files 9 documented · 1%
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

image

Go.cam - Age verification system

GO.cam offers a simple, easy-to-use application for verifying age online. With just a few clicks, it allows to verify the age of the person who wishes to access certain sites restricted to minors.

Two methods of age verification are available : facial recognition (selfie) and ID documents verification (ID card, passport, or driver's license).

For the selfie verification, GO.cam utilizes the smartphone camera or computer webcam to assess the user's age through artificial intelligence. If the detected age is too close to the legal age, another verification method is suggested.

GO.cam is certified 🏅

We are constantly working closely with regulators from many countries to certify GO.cam.

Authorities that already certified us:

ASACP recommends Go.cam as a solution for protecting minors online by guaranteeing secure access to adult content.

Environment Variables

Copy the .env.example file and rename it to .env in the project's root directory. The service defaults to using port 3300 on localhost.

cp .env.example .env

Install

This project was developed using Nodejs v20, we recommend using a compatible version.

Clone this repository and install the required packages by running on the root the of the project the following command:

npm install

Run

After the installation of the packages you should be able to run the project in development or production mode. The only difference between them is the watch parameter (watches for any file changes on the backend and restart the nodejs process when a detection is made) which is enabled for the development version.

To run the project in development mode run:

npm run startDev

To run the project in production mode run:

npm run startProd

By default the project will run on http://localhost:3300. Due to the fact that this project requires access to some features that are restricted to https (e.g. webcam access), we recommend you running it on localhost on your first run.

Example implementation

By running this project you will be able to go through both types of verification flows: using a redirect or a iframe overlay.

Additionally, we provide a standalone implementation of go.cam in various programming languages. Please check the example folder for more information about this.

A MIT license alternative for the example implementation code can be found inside this repository: https://github.com/Godotcam/goCamOpenSourceExamples.

Project structure

This project is using typescript for both frontend and backend (express js) scripts, sass for the styling part and twig for the template part.

Views

The views folder is located under app/frontend/views.

Styling

The sass folder is located under source/frontend/css and it is compiled and merged to app/frontend/static/css/main.css.

Backend scripts

The backend scripts are located under source/backend/app and are compiled to app/backend/.

Frontend scripts

The frontend scripts are located under source/frontend/js/app and are compiled and merged to app/frontent/static/js/app.

Build and run scripts

The build and run scripts are located under script/gulpfile.js.

Develop

If you wish to develop the project further you might find the following commands useful.

Build the whole project (frontend, backend and styling):

npm run build

Build only the backend:

npm run buildJsBackend

Build only the frontend:

npm run buildJsFrontend

Build only the styling:

npm run buildCssFrontend

Watch the file changes on all the project and automatically rebuild (frontend, backend and styling):

npm run watch

Watch only the backend:

npm run watchJsBackend

Watch only the frontend:

npm run watchJsFrontend

Watch only the styling:

npm run watchCssFrontend

Extension points exported contracts — how you extend this code

ISelfieAgeDetectionIntroConfig (Interface)
(no doc)
source/frontend/js/app/avsFactory.js/selfieAgeDetectionIntro/00-config.ts
SessionData (Interface)
(no doc)
source/backend/app/app.ts
IScanIdAgeVerificationPageConfig (Interface)
(no doc)
source/frontend/js/app/avsFactory.js/scanIdAgeVerificationPage/00-config.ts
IPayloadList (Interface)
(no doc)
source/backend/app/storage/payload.ts
ISelfieAgeDetectionPageConfig (Interface)
(no doc)
source/frontend/js/app/avsFactory.js/selfieAgeDetectionPage/00-config.ts
IPayloadListItem (Interface)
(no doc)
source/backend/app/storage/payload.ts
IResultPageFailConfig (Interface)
(no doc)
source/frontend/js/app/avsFactory.js/resultPageFail/00-config.ts
ISessionList (Interface)
(no doc)
source/backend/app/storage/session.ts

Core symbols most depended-on inside this repo

getInstance
called by 190
source/frontend/js/app/avs.js/entity/ui.ts
create
called by 128
app/backend/storage/session.js
extendStatics
called by 115
app/frontend/static/js/app/avs.js
logToContainer
called by 104
source/frontend/js/app/avs.js/debug/log.ts
initStates
called by 99
source/frontend/js/app/avs.js/ui/library/area/debugArea.ts
getElement
called by 87
source/frontend/js/app/avs.js/ui/library/area/debugArea.ts
hide
called by 84
source/frontend/js/app/avs.js/video/handler.ts
show
called by 80
source/frontend/js/app/avs.js/video/handler.ts

Shape

Method 744
Class 373
Function 322
Interface 92
Enum 2

Languages

TypeScript99%
PHP1%

Modules by API surface

app/frontend/static/js/app/avs.js139 symbols
app/frontend/static/js/appFiles/tjs/w.min.js63 symbols
app/frontend/static/js/app/common.js29 symbols
source/frontend/js/app/avs.js/helper/common.ts27 symbols
source/frontend/js/app/avs.js/ui/handler/tabs.ts24 symbols
source/frontend/js/app/avs.js/plugin/library/ml/faceApi.ts23 symbols
source/frontend/js/app/avs.js/event/listener.ts22 symbols
source/frontend/js/app/avsFactory.js/scanIdAgeVerificationPage/30-method.ts19 symbols
source/frontend/js/app/avs.js/ui/handler/_common.ts19 symbols
source/frontend/js/app/common.js/01-page/01-home.ts18 symbols
source/frontend/js/app/avs.js/factoryPageList/_genericPage.ts18 symbols
source/backend/app/storage/session.ts17 symbols

For agents

$ claude mcp add goCamOpenSource \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact