Skip to content

Commit e1c5a03

Browse files
committed
Initial release
0 parents  commit e1c5a03

File tree

146 files changed

+121574
-0
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

146 files changed

+121574
-0
lines changed

.gitignore

+40
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
# Created by https://www.gitignore.io/api/web,node,macos
2+
# Edit at https://www.gitignore.io/?templates=web,node,macos
3+
4+
### macOS ###
5+
.DS_Store
6+
.AppleDouble
7+
.LSOverride
8+
Icon
9+
._*
10+
11+
### Node ###
12+
dist
13+
logs
14+
*.log
15+
npm-debug.log*
16+
yarn-debug.log*
17+
yarn-error.log*
18+
pids
19+
*.pid
20+
*.seed
21+
*.pid.lock
22+
23+
node_modules/
24+
jspm_packages/
25+
.npm
26+
.eslintcache
27+
.node_repl_history
28+
*.tgz
29+
.yarn-integrity
30+
.env
31+
.env.test
32+
.cache
33+
34+
### VisualStudioCode ###
35+
.vscode
36+
!.vscode/settings.json
37+
!.vscode/tasks.json
38+
!.vscode/launch.json
39+
!.vscode/extensions.json
40+
.history

LICENSE

+674
Large diffs are not rendered by default.

README.md

+48
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
# The Observatory of Anonymity
2+
3+
Source code for the Observatory of anonymity, available online at [https://cpg.doc.ic.ac.uk/observatory/](https://cpg.doc.ic.ac.uk/observatory/).
4+
The Observatory of Anonymity allows users to test their degree of anonymity in 89 different countries.
5+
6+
This is a client-side only application developed in TypeScript. All the computation to run the models are done directly in the browser.
7+
The Observatory uses a statistical model developed in our original article [‘Estimating the success of re-identifications in incomplete datasets using generative models’](https://www.nature.com/articles/s41467-019-10933-3), published in Nature Communications.
8+
9+
10+
11+
## Quick Start
12+
13+
To get the code, and run the application locally on Linux or Mac, try the following:
14+
15+
```shell
16+
# Get the code from GitLab
17+
git clone [email protected]:computationalprivacy/observatory.git
18+
cd observatory
19+
20+
# Install npm dependencies
21+
npm install
22+
23+
# Run the application
24+
npm run start:dev
25+
```
26+
27+
Then browse to <http://localhost:8080>: you should see the client-side application.
28+
29+
## Overview of the Codebase
30+
31+
| Package | Content Description |
32+
|---------|--------------------------|
33+
| `src/` | Main source files for React App |
34+
| `src/model` | Model files ported to TS from [CorrectMatch.jl](https://github.com/computationalprivacy/CorrectMatch.jl/) |
35+
| `static/mvndst.js` | Numerical integration [algorithm](http://www.math.wsu.edu/faculty/genz/software/fort77/mvndstpack.f) compiled to WebAssembly |
36+
37+
## Technology Stack
38+
39+
The application is currently built with the following technologies:
40+
* **React** - web-application with client side rendering
41+
* **TS** - model generation & uniqueness calculation
42+
* **WebAssembly** - Numerical integration routine
43+
44+
# License
45+
46+
GNU General Public License v3.0
47+
48+
See LICENSE to see the full text.

custom_types/fmin.d.ts

+5
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
declare module 'fmin' {
2+
const nelderMead: any;
3+
4+
export default nelderMead;
5+
}

custom_types/jstat.d.ts

+5
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
declare module 'jstat' {
2+
const normal: any;
3+
4+
export default normal;
5+
}

custom_types/math.d.ts

+7
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
import 'mathjs'
2+
3+
declare module 'mathjs' {
4+
interface MathJsStatic {
5+
eigs: any;
6+
}
7+
}

custom_types/rcAnimate.d.ts

+4
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
declare module 'rc-animate' {
2+
const Animate: any;
3+
export default Animate;
4+
}

custom_types/workerLoader.d.ts

+7
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
declare module 'worker-loader!*' {
2+
class WebpackWorker extends Worker {
3+
constructor();
4+
}
5+
6+
export default WebpackWorker;
7+
}

0 commit comments

Comments
 (0)