This commit is contained in:
MDeghaud67 2023-05-09 11:38:55 +02:00
parent b995e34426
commit a250d5de8f
72 changed files with 549 additions and 573 deletions

View File

@ -1 +0,0 @@
PB_URL="https://iot.epi.cb85.software"

81
.gitignore vendored Normal file
View File

@ -0,0 +1,81 @@
.idea
# Created by https://www.toptal.com/developers/gitignore/api/unity
# Edit at https://www.toptal.com/developers/gitignore?templates=unity
### Unity ###
# This .gitignore file should be placed at the root of your Unity project directory
#
# Get latest from https://github.com/github/gitignore/blob/main/Unity.gitignore
/[Ll]ibrary/
/[Tt]emp/
/[Oo]bj/
/[Bb]uild/
/[Bb]uilds/
/[Ll]ogs/
/[Uu]ser[Ss]ettings/
# MemoryCaptures can get excessive in size.
# They also could contain extremely sensitive data
/[Mm]emoryCaptures/
# Recordings can get excessive in size
/[Rr]ecordings/
# Uncomment this line if you wish to ignore the asset store tools plugin
# /[Aa]ssets/AssetStoreTools*
# Autogenerated Jetbrains Rider plugin
/[Aa]ssets/Plugins/Editor/JetBrains*
# Visual Studio cache directory
.vs/
# Gradle cache directory
.gradle/
# Autogenerated VS/MD/Consulo solution and project files
ExportedObj/
.consulo/
*.csproj
*.unityproj
*.sln
*.suo
*.tmp
*.user
*.userprefs
*.pidb
*.booproj
*.svd
*.pdb
*.mdb
*.opendb
*.VC.db
# Unity3D generated meta files
*.pidb.meta
*.pdb.meta
*.mdb.meta
# Unity3D generated file on crash reports
sysinfo.txt
# Builds
*.apk
*.aab
*.unitypackage
*.app
# Crashlytics generated file
crashlytics-build.properties
# Packed Addressables
/[Aa]ssets/[Aa]ddressable[Aa]ssets[Dd]ata/*/*.bin*
# Temporary auto-generated Android Assets
/[Aa]ssets/[Ss]treamingAssets/aa.meta
/[Aa]ssets/[Ss]treamingAssets/aa/*
# End of https://www.toptal.com/developers/gitignore/api/unity
IOT/docs/doxygen output/*

View File

@ -1,5 +0,0 @@
import PocketBase from 'pocketbase';
const pb = new PocketBase(process.env.PB_URL);
export default pb;

View File

@ -1,7 +0,0 @@
import PocketBase from 'pocketbase';
const pb = new PocketBase(process.env.PB_URL);
const authData = await pb.collection('users').authWithPassword('michel.deghaud@gmail.com', 'Kimbomaye67');
export default pb;

View File

@ -1,7 +0,0 @@
import PocketBase from 'pocketbase';
const pb = new PocketBase('http://127.0.0.1:8090');
await pb.admins.authWithPassword('test@example.com', '123456');
const admin = await pb.admins.getOne('ADMIN_ID');

View File

@ -1,7 +0,0 @@
import PocketBase from 'pocketbase';
const pb = new PocketBase('https://iot.epi.cb85.software');
await pb.admins.authWithPassword('test@example.com', '123456');
const admin = await pb.admins.getOne('ADMIN_ID');

View File

@ -1,18 +0,0 @@
import PocketBase from 'pocketbase';
const pb = new PocketBase('http://127.0.0.1:8090');
...
await pb.admins.authWithPassword('test@example.com', '123456');
// fetch a paginated records list
const resultList = await pb.admins.getList(1, 100, {
filter: 'created >= '2022-01-01 00:00:00'',
});
// you can also fetch all records at once via getFullList
const admins = await pb.admins.getFullList({ sort: '-created' });
// or fetch only the first admin that matches the specified filter
const admin = await pb.admins.getFirstListItem('email~"test"');

View File

@ -1,16 +0,0 @@
import PocketBase from 'pocketbase';
const pb = new PocketBase('http://127.0.0.1:8090');
await pb.admins.authWithPassword('test@example.com', '123456');
// fetch a paginated records list
const resultList = await pb.admins.getList(1, 100, {
filter: 'created >= \'2022-01-01 00:00:00\'',
});
// you can also fetch all records at once via getFullList
const admins = await pb.admins.getFullList({ sort: '-created' });
// or fetch only the first admin that matches the specified filter
const admin = await pb.admins.getFirstListItem('email~"test"');

View File

@ -1,16 +0,0 @@
import PocketBase from 'pocketbase';
const pb = new PocketBase('https://iot.epi.cb85.software');
await pb.admins.authWithPassword('test@example.com', '123456');
// fetch a paginated records list
const resultList = await pb.admins.getList(1, 100, {
filter: 'created >= \'2022-01-01 00:00:00\'',
});
// you can also fetch all records at once via getFullList
const admins = await pb.admins.getFullList({ sort: '-created' });
// or fetch only the first admin that matches the specified filter
const admin = await pb.admins.getFirstListItem('email~"test"');

View File

@ -1,13 +0,0 @@
import PocketBase from 'pocketbase';
const pb = new PocketBase('http://127.0.0.1:8090');
...
await pb.admins.authWithPassword('test@example.com', '1234567890');
const admin = await pb.admins.update('ADMIN_ID', {
password: '0987654321',
passwodConfirm: '0987654321',
avatar: 4,
});

View File

@ -1,11 +0,0 @@
import PocketBase from 'pocketbase';
const pb = new PocketBase('http://127.0.0.1:8090');
await pb.admins.authWithPassword('test@example.com', '1234567890');
const admin = await pb.admins.update('ADMIN_ID', {
password: '0987654321',
passwodConfirm: '0987654321',
avatar: 4,
});

View File

@ -1,11 +0,0 @@
import PocketBase from 'pocketbase';
const pb = new PocketBase('https://iot.epi.cb85.software');
await pb.admins.authWithPassword('test@example.com', '1234567890');
const admin = await pb.admins.update('ADMIN_ID', {
password: '0987654321',
passwodConfirm: '0987654321',
avatar: 4,
});

View File

@ -1,13 +0,0 @@
import PocketBase from 'pocketbase';
const pb = new PocketBase('https://iot.epi.cb85.software');
// example create data
const data = {
"trash_id": "RELATION_RECORD_ID",
"unit": "test",
"status": true,
"value": "test"
};
const record = await pb.collection('data').create(data);

View File

@ -1,5 +0,0 @@
import PocketBase from 'pocketbase';
const pb = new PocketBase('https://iot.epi.cb85.software');
await pb.collection('data').delete('RECORD_ID');

View File

@ -1,7 +0,0 @@
import PocketBase from 'pocketbase';
const pb = new PocketBase('https://iot.epi.cb85.software');
const record = await pb.collection('data').getOne('RECORD_ID', {
expand: 'relField1,relField2.subRelField',
});

View File

@ -1,13 +0,0 @@
import PocketBase from 'pocketbase';
const pb = new PocketBase('https://iot.epi.cb85.software');
// example update data
const data = {
"trash_id": "RELATION_RECORD_ID",
"unit": "test",
"status": true,
"value": "test"
};
const record = await pb.collection('data').update('RECORD_ID', data);

View File

@ -1,10 +0,0 @@
import PocketBase from 'pocketbase';
const pb = new PocketBase('https://iot.epi.cb85.software');
// example create data
const data = {
"owner": "RELATION_RECORD_ID"
};
const record = await pb.collection('trashs').create(data);

View File

@ -1,5 +0,0 @@
import PocketBase from 'pocketbase';
const pb = new PocketBase('https://iot.epi.cb85.software');
await pb.collection('trashs').delete('RECORD_ID');

View File

@ -1,7 +0,0 @@
import PocketBase from 'pocketbase';
const pb = new PocketBase('https://iot.epi.cb85.software');
const record = await pb.collection('trashs').getOne('RECORD_ID', {
expand: 'relField1,relField2.subRelField',
});

View File

@ -1,10 +0,0 @@
import PocketBase from 'pocketbase';
const pb = new PocketBase('https://iot.epi.cb85.software');
// example update data
const data = {
"owner": "RELATION_RECORD_ID"
};
const record = await pb.collection('trashs').update('RECORD_ID', data);

View File

@ -1,7 +0,0 @@
import PocketBase from 'pocketbase';
const pb = new PocketBase('https://iot.epi.cb85.software');
const record = await pb.collection('users').getOne('RECORD_ID', {
expand: 'relField1,relField2.subRelField',
});

View File

@ -1,16 +0,0 @@
import PocketBase from 'pocketbase';
const pb = new PocketBase('https://iot.epi.cb85.software');
const authData = await pb.collection('users').authWithPassword(
'YOUR_USERNAME_OR_EMAIL',
'YOUR_PASSWORD',
);
// after the above you can also access the auth data from the authStore
console.log(pb.authStore.isValid);
console.log(pb.authStore.token);
console.log(pb.authStore.model.id);
// "logout" the last authenticated account
pb.authStore.clear();

View File

@ -1 +0,0 @@
{"_type":"export","__export_format":4,"__export_date":"2023-04-03T13:50:30.902Z","__export_source":"insomnia.desktop.app:v2023.1.0","resources":[{"_id":"req_7ab7afd204f84b64b0f12c0ac2cce728","parentId":"wrk_c2f3bac211ca48afb0e9b938a5dc22ba","modified":1680528568144,"created":1680528426928,"url":"https://iot.epi.cb85.software/api/collections/users/records/","name":"List users","description":"","method":"GET","body":{},"parameters":[],"headers":[],"authentication":{},"metaSortKey":-1680528426928,"isPrivate":false,"settingStoreCookies":true,"settingSendCookies":true,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global","_type":"request"},{"_id":"wrk_c2f3bac211ca48afb0e9b938a5dc22ba","parentId":null,"modified":1680529607763,"created":1680528426859,"name":"Test API","description":"","scope":"design","_type":"workspace"},{"_id":"req_15f80c73d6184fcaa84a27c61f0e9d80","parentId":"wrk_c2f3bac211ca48afb0e9b938a5dc22ba","modified":1680529540579,"created":1680528602721,"url":"https://iot.epi.cb85.software/api/collections/users/records","name":"Create users","description":"","method":"POST","body":{"mimeType":"application/json","text":"{\n \"username\": \"nico\",\n \"email\": \"nicolas.sans@epitech.eu\",\n \"emailVisibility\": true,\n \"password\": \"12345abcdefg\",\n \"passwordConfirm\": \"12345abcdefg\",\n \"name\": \"test\"\n}"},"parameters":[],"headers":[{"name":"Content-Type","value":"application/json"}],"authentication":{},"metaSortKey":-1680528602722,"isPrivate":false,"settingStoreCookies":true,"settingSendCookies":true,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global","_type":"request"},{"_id":"req_b1a4c2a1ac7949a9bef9a1dcdee28ef0","parentId":"wrk_c2f3bac211ca48afb0e9b938a5dc22ba","modified":1680529705996,"created":1680529686485,"url":"https://iot.epi.cb85.software/api/collections/trashs/records","name":"List trashs","description":"","method":"GET","body":{},"parameters":[],"headers":[],"authentication":{},"metaSortKey":-1680529686485,"isPrivate":false,"settingStoreCookies":true,"settingSendCookies":true,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global","_type":"request"},{"_id":"req_33bf2e1173ba46eea65e1fca84d4a49d","parentId":"wrk_c2f3bac211ca48afb0e9b938a5dc22ba","modified":1680529740613,"created":1680529725947,"url":"https://iot.epi.cb85.software/api/collections/data/records","name":"List data","description":"","method":"GET","body":{},"parameters":[],"headers":[],"authentication":{},"metaSortKey":-1680529725947,"isPrivate":false,"settingStoreCookies":true,"settingSendCookies":true,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global","_type":"request"},{"_id":"env_c064b9f18a216b0e8542bcc13d85f87eae7567c9","parentId":"wrk_c2f3bac211ca48afb0e9b938a5dc22ba","modified":1680528426923,"created":1680528426923,"name":"Base Environment","data":{},"dataPropertyOrder":null,"color":null,"isPrivate":false,"metaSortKey":1680528426923,"_type":"environment"},{"_id":"jar_c064b9f18a216b0e8542bcc13d85f87eae7567c9","parentId":"wrk_c2f3bac211ca48afb0e9b938a5dc22ba","modified":1680528426925,"created":1680528426925,"name":"Default Jar","cookies":[],"_type":"cookie_jar"},{"_id":"spc_96bf7588a8b04c9ea2fb780dc2e6b0f5","parentId":"wrk_c2f3bac211ca48afb0e9b938a5dc22ba","modified":1680529607757,"created":1680528426887,"fileName":"Test API","contents":"","contentType":"yaml","_type":"api_spec"},{"_id":"uts_8ae620046c8a4f17af78e1354b40b6e2","parentId":"wrk_c2f3bac211ca48afb0e9b938a5dc22ba","modified":1680528426929,"created":1680528426929,"name":"Example Test Suite","_type":"unit_test_suite"},{"_id":"ut_a4ef4a2ba5a84ec09d963c48c2505ebd","parentId":"uts_8ae620046c8a4f17af78e1354b40b6e2","modified":1680528528479,"created":1680528524523,"requestId":"req_7ab7afd204f84b64b0f12c0ac2cce728","name":"Returns 200","code":"const response1 = await insomnia.send();\nexpect(response1.status).to.equal(200);","_type":"unit_test"}]}

View File

@ -1,168 +0,0 @@
{
"_type":"export",
"__export_format":4,
"__export_date":"2023-04-03T13:50:30.902Z",
"__export_source":"insomnia.desktop.app:v2023.1.0",
"resources":[
{
"_id":"req_7ab7afd204f84b64b0f12c0ac2cce728",
"parentId":"wrk_c2f3bac211ca48afb0e9b938a5dc22ba",
"modified":1680528568144,
"created":1680528426928,
"url":"https://iot.epi.cb85.software/api/collections/users/records/",
"name":"List users",
"description":"",
"method":"GET",
"body":{},
"parameters":[],
"headers":[],
"authentication":{},
"metaSortKey":-1680528426928,
"isPrivate":false,
"settingStoreCookies":true,
"settingSendCookies":true,
"settingDisableRenderRequestBody":false,
"settingEncodeUrl":true,
"settingRebuildPath":true,
"settingFollowRedirects":"global",
"_type":"request"
},
{
"_id":"wrk_c2f3bac211ca48afb0e9b938a5dc22ba",
"parentId":null,
"modified":1680529607763,
"created":1680528426859,
"name":"Test API",
"description":"",
"scope":"design",
"_type":"workspace"
},
{
"_id":"req_15f80c73d6184fcaa84a27c61f0e9d80",
"parentId":"wrk_c2f3bac211ca48afb0e9b938a5dc22ba",
"modified":1680529540579,
"created":1680528602721,
"url":"https://iot.epi.cb85.software/api/collections/users/records",
"name":"Create users",
"description":"",
"method":"POST",
"body":{
"mimeType":"application/json",
"text":"{\n \"username\": \"nico\",\n \"email\": \"nicolas.sans@epitech.eu\",\n \"emailVisibility\": true,\n \"password\": \"12345abcdefg\",\n \"passwordConfirm\": \"12345abcdefg\",\n \"name\": \"test\"\n}"
},
"parameters":[],
"headers":[
{
"name":"Content-Type",
"value":"application/json"
}
],
"authentication":{},
"metaSortKey":-1680528602722,
"isPrivate":false,
"settingStoreCookies":true,
"settingSendCookies":true,
"settingDisableRenderRequestBody":false,
"settingEncodeUrl":true,
"settingRebuildPath":true,
"settingFollowRedirects":"global",
"_type":"request"
},
{
"_id":"req_b1a4c2a1ac7949a9bef9a1dcdee28ef0",
"parentId":"wrk_c2f3bac211ca48afb0e9b938a5dc22ba",
"modified":1680529705996,
"created":1680529686485,
"url":"https://iot.epi.cb85.software/api/collections/trashs/records",
"name":"List trashs",
"description":"",
"method":"GET",
"body":{},
"parameters":[],
"headers":[],
"authentication":{},
"metaSortKey":-1680529686485,
"isPrivate":false,
"settingStoreCookies":true,
"settingSendCookies":true,
"settingDisableRenderRequestBody":false,
"settingEncodeUrl":true,
"settingRebuildPath":true,
"settingFollowRedirects":"global",
"_type":"request"
},
{
"_id":"req_33bf2e1173ba46eea65e1fca84d4a49d",
"parentId":"wrk_c2f3bac211ca48afb0e9b938a5dc22ba",
"modified":1680529740613,
"created":1680529725947,
"url":"https://iot.epi.cb85.software/api/collections/data/records",
"name":"List data",
"description":"",
"method":"GET",
"body":{},
"parameters":[],
"headers":[],
"authentication":{},
"metaSortKey":-1680529725947,
"isPrivate":false,
"settingStoreCookies":true,
"settingSendCookies":true,
"settingDisableRenderRequestBody":false,
"settingEncodeUrl":true,
"settingRebuildPath":true,
"settingFollowRedirects":"global",
"_type":"request"
},
{
"_id":"env_c064b9f18a216b0e8542bcc13d85f87eae7567c9",
"parentId":"wrk_c2f3bac211ca48afb0e9b938a5dc22ba",
"modified":1680528426923,
"created":1680528426923,
"name":"Base Environment",
"data":{},
"dataPropertyOrder":null,
"color":null,
"isPrivate":false,
"metaSortKey":1680528426923,
"_type":"environment"
},
{
"_id":"jar_c064b9f18a216b0e8542bcc13d85f87eae7567c9",
"parentId":"wrk_c2f3bac211ca48afb0e9b938a5dc22ba",
"modified":1680528426925,
"created":1680528426925,
"name":"Default Jar",
"cookies":[],
"_type":"cookie_jar"
},
{
"_id":"spc_96bf7588a8b04c9ea2fb780dc2e6b0f5",
"parentId":"wrk_c2f3bac211ca48afb0e9b938a5dc22ba",
"modified":1680529607757,
"created":1680528426887,
"fileName":"Test API",
"contents":"",
"contentType":"yaml",
"_type":"api_spec"
},
{
"_id":"uts_8ae620046c8a4f17af78e1354b40b6e2",
"parentId":"wrk_c2f3bac211ca48afb0e9b938a5dc22ba",
"modified":1680528426929,
"created":1680528426929,
"name":"Example Test Suite",
"_type":"unit_test_suite"
},
{
"_id":"ut_a4ef4a2ba5a84ec09d963c48c2505ebd",
"parentId":"uts_8ae620046c8a4f17af78e1354b40b6e2",
"modified":1680528528479,
"created":1680528524523,
"requestId":"req_7ab7afd204f84b64b0f12c0ac2cce728",
"name":"Returns 200",
"code":"const response1 = await insomnia.send();\nexpect(response1.status).to.equal(200);",
"_type":"unit_test"
}
]
}

View File

@ -1,8 +0,0 @@
const response1 = await insomnia.send();
const body = JSON.parse(response1.data);
//const item = body[0];
expect(body).to.be.an('object');
//expect(item).to.be.an('');
//expect(response1.status).to.equal(200);
//expect(item).to.have.property('symbol');

View File

@ -1,4 +0,0 @@
const { assert } = chai;
const response1 = await insomnia.send();
assert.equal(response1.status, 200);

View File

@ -1,6 +0,0 @@
const { expect } = chai;
const response1 = await insomnia.send();
expect(response1.status).to.equal(200);
const body = JSON.parse(response1.data);
expect(body).to.be.an('object');

View File

@ -1,6 +0,0 @@
const { expect } = chai;
const response1 = await insomnia.send();
expect(response1.status).to.equal(200);
const body = JSON.parse(response1.data);
expect(body).to.be.an('object');

View File

@ -1,19 +0,0 @@
{
"configurations": [
{
"name": "Mac",
"includePath": [
"${workspaceFolder}/**"
],
"defines": [],
"macFrameworkPath": [
"/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/System/Library/Frameworks"
],
"compilerPath": "/usr/bin/clang",
"cStandard": "c17",
"cppStandard": "c++17",
"intelliSenseMode": "macos-clang-x64"
}
],
"version": 4
}

3
.vscode/settings.json vendored Normal file
View File

@ -0,0 +1,3 @@
{
"C_Cpp.errorSquiggles": "disabled"
}

29
API/docs/diagram.wsd Normal file
View File

@ -0,0 +1,29 @@
@startuml diagram
class users {
id: text
username: text
email: email
name: text
image: file
created: date
updated: date
}
class trashs{
id: text
value: text
author: users
created: date
updated: date
}
class data {
id: text
value: number
poubelle_id: trashs
unit: text
status: bool
created: date
updated: date
}
users "1" <-- trashs
trashs "1" <-- data
@enduml

3
AR.meta Normal file
View File

@ -0,0 +1,3 @@
fileFormatVersion: 2
guid: 19cf999df50c445ba3c964510468fb8d
timeCreated: 1679395580

3
AR/.env.example Normal file
View File

@ -0,0 +1,3 @@
API_URL=https://helloworld.com
API_USER=hello
API_PASSWORD=world

55
AR/.gitattributes vendored Normal file
View File

@ -0,0 +1,55 @@
# 3D models
*.3dm filter=lfs diff=lfs merge=lfs -text
*.3ds filter=lfs diff=lfs merge=lfs -text
*.blend filter=lfs diff=lfs merge=lfs -text
*.c4d filter=lfs diff=lfs merge=lfs -text
*.collada filter=lfs diff=lfs merge=lfs -text
*.dae filter=lfs diff=lfs merge=lfs -text
*.dxf filter=lfs diff=lfs merge=lfs -text
*.fbx filter=lfs diff=lfs merge=lfs -text
*.jas filter=lfs diff=lfs merge=lfs -text
*.lws filter=lfs diff=lfs merge=lfs -text
*.lxo filter=lfs diff=lfs merge=lfs -text
*.ma filter=lfs diff=lfs merge=lfs -text
*.max filter=lfs diff=lfs merge=lfs -text
*.mb filter=lfs diff=lfs merge=lfs -text
*.obj filter=lfs diff=lfs merge=lfs -text
*.ply filter=lfs diff=lfs merge=lfs -text
*.skp filter=lfs diff=lfs merge=lfs -text
*.stl filter=lfs diff=lfs merge=lfs -text
*.ztl filter=lfs diff=lfs merge=lfs -text
# Audio
*.aif filter=lfs diff=lfs merge=lfs -text
*.aiff filter=lfs diff=lfs merge=lfs -text
*.it filter=lfs diff=lfs merge=lfs -text
*.mod filter=lfs diff=lfs merge=lfs -text
*.mp3 filter=lfs diff=lfs merge=lfs -text
*.ogg filter=lfs diff=lfs merge=lfs -text
*.s3m filter=lfs diff=lfs merge=lfs -text
*.wav filter=lfs diff=lfs merge=lfs -text
*.xm filter=lfs diff=lfs merge=lfs -text
# Fonts
*.otf filter=lfs diff=lfs merge=lfs -text
*.ttf filter=lfs diff=lfs merge=lfs -text
# Images
*.bmp filter=lfs diff=lfs merge=lfs -text
*.exr filter=lfs diff=lfs merge=lfs -text
*.gif filter=lfs diff=lfs merge=lfs -text
*.hdr filter=lfs diff=lfs merge=lfs -text
*.iff filter=lfs diff=lfs merge=lfs -text
*.jpeg filter=lfs diff=lfs merge=lfs -text
*.jpg filter=lfs diff=lfs merge=lfs -text
*.pict filter=lfs diff=lfs merge=lfs -text
*.png filter=lfs diff=lfs merge=lfs -text
*.psd filter=lfs diff=lfs merge=lfs -text
*.tga filter=lfs diff=lfs merge=lfs -text
*.tif filter=lfs diff=lfs merge=lfs -text
*.tiff filter=lfs diff=lfs merge=lfs -text
# Collapse Unity-generated files on GitHub
*.asset linguist-generated
*.mat linguist-generated
*.meta linguist-generated
*.prefab linguist-generated
*.unity linguist-generated

147
AR/.gitignore vendored Normal file
View File

@ -0,0 +1,147 @@
# This .gitignore file should be placed at the root of your Unity project directory
# First part from https://github.com/github/gitignore/blob/master/Unity.gitignore
# Parkerhill additions at the end
/[Ll]ibrary/
/[Tt]emp/
/[Oo]bj/
/[Bb]uild/
/[Bb]uilds/
/[Ll]ogs/
/[Uu]ser[Ss]ettings/
# MemoryCaptures can get excessive in size.
# They also could contain extremely sensitive data
/[Mm]emoryCaptures/
# Asset meta data should only be ignored when the corresponding asset is also ignored
!/[Aa]ssets/**/*.meta
# Uncomment this line if you wish to ignore the asset store tools plugin
# /[Aa]ssets/AssetStoreTools*
# Autogenerated Jetbrains Rider plugin
/[Aa]ssets/Plugins/Editor/JetBrains*
# Visual Studio cache directory
.vs/
# Gradle cache directory
.gradle/
# Autogenerated VS/MD/Consulo solution and project files
ExportedObj/
.consulo/
*.csproj
*.unityproj
*.sln
*.suo
*.tmp
*.user
*.userprefs
*.pidb
*.booproj
*.svd
*.pdb
*.mdb
*.opendb
*.VC.db
# Unity3D generated meta files
*.pidb.meta
*.pdb.meta
*.mdb.meta
# Unity3D generated file on crash reports
sysinfo.txt
# Builds
*.apk
*.aab
*.unitypackage
# Crashlytics generated file
crashlytics-build.properties
# Packed Addressables
/[Aa]ssets/[Aa]ddressable[Aa]ssets[Dd]ata/*/*.bin*
# Temporary auto-generated Android Assets
/[Aa]ssets/[Ss]treamingAssets/aa.meta
/[Aa]ssets/[Ss]treamingAssets/aa/*
# =========================
# PARKERHILL ADDITIONS
# =========================
# Unity app files
.GameStatistics
.PlayerSettings
# parkerhill unity project folder conventions
/AssetBundles/
# =========================
# OSX
# =========================
.DS_Store
.AppleDouble
.LSOverride
# thumbnails
._*
# Files that might appear in the root of a volume
.DocumentRevisions-V100
.fseventsd
.Spotlight-V100
.TemporaryItems
.Trashes
.VolumeIcon.icns
# Directories potentially created on remote AFP share
.AppleDB
.AppleDesktop
Network Trash Folder
Temporary Items
.apdisk
# =========================
# Windows
# =========================
# Windows image file caches
Thumbs.db
Thumbs.db.meta
ehthumbs.db
# Folder config file
Desktop.ini
# Recycle Bin used on file shares
$RECYCLE.BIN/
# Windows Installer files
*.cab
*.msi
*.msm
*.msp
# Windows shortcuts
*.lnk
# Visual Studio stuff
.vs/
.idea/
.gradle/
PackageBackups/
# UWP builds
/UWP/*
.env

8
AR/Assets/ExampleAssets.meta generated Normal file
View File

@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 5040ff35809714c9f899bd2e7ae0f30a
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

8
AR/Assets/ExampleAssets/Materials.meta generated Normal file
View File

@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 0a1aa25d695ea4175bf4920feb2742e1
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -0,0 +1,109 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!114 &-4490881977315335027
MonoBehaviour:
m_ObjectHideFlags: 11
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 0}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3}
m_Name:
m_EditorClassIdentifier:
version: 1
--- !u!21 &2100000
Material:
serializedVersion: 6
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name: PlacedCubeMat
m_Shader: {fileID: 46, guid: 0000000000000000f000000000000000, type: 0}
m_ShaderKeywords:
m_LightmapFlags: 4
m_EnableInstancingVariants: 0
m_DoubleSidedGI: 0
m_CustomRenderQueue: -1
stringTagMap: {}
disabledShaderPasses: []
m_SavedProperties:
serializedVersion: 3
m_TexEnvs:
- _BaseMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _BumpMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _DetailAlbedoMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _DetailMask:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _DetailNormalMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _EmissionMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _MainTex:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _MetallicGlossMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _OcclusionMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _ParallaxMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _SpecGlossMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
m_Floats:
- _AlphaClip: 0
- _Blend: 0
- _BumpScale: 1
- _Cull: 2
- _Cutoff: 0.5
- _DetailNormalMapScale: 1
- _DstBlend: 0
- _EnvironmentReflections: 1
- _GlossMapScale: 1
- _Glossiness: 0
- _GlossyReflections: 1
- _Metallic: 0
- _Mode: 0
- _OcclusionStrength: 1
- _Parallax: 0.02
- _QueueOffset: 0
- _ReceiveShadows: 1
- _Smoothness: 0
- _SmoothnessTextureChannel: 0
- _SpecularHighlights: 1
- _SrcBlend: 1
- _Surface: 0
- _UVSec: 0
- _WorkflowMode: 1
- _ZWrite: 1
m_Colors:
- _BaseColor: {r: 0, g: 0.74509805, b: 0.8196079, a: 1}
- _Color: {r: 0.9647059, g: 0.455222, b: 0.11854753, a: 1}
- _EmissionColor: {r: 0, g: 0, b: 0, a: 1}
- _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1}

View File

@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 0ce7ca15cd93341beb67396a494cef55
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 0
userData:
assetBundleName:
assetBundleVariant:

View File

@ -0,0 +1,79 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!21 &2100000
Material:
serializedVersion: 6
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name: PlaneMat
m_Shader: {fileID: 4800000, guid: 9b989c81462e144eb95a232bec4719d5, type: 3}
m_ShaderKeywords:
m_LightmapFlags: 4
m_EnableInstancingVariants: 0
m_DoubleSidedGI: 0
m_CustomRenderQueue: -1
stringTagMap: {}
disabledShaderPasses: []
m_SavedProperties:
serializedVersion: 3
m_TexEnvs:
- _BumpMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _DetailAlbedoMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _DetailMask:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _DetailNormalMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _EmissionMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _MainTex:
m_Texture: {fileID: 2800000, guid: af6bcea09b8134831b6599e2900aef81, type: 3}
m_Scale: {x: 2.25, y: 2.25}
m_Offset: {x: 0, y: 0}
- _MetallicGlossMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _OcclusionMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _ParallaxMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
m_Floats:
- _BumpScale: 1
- _Cutoff: 0.5
- _DetailNormalMapScale: 1
- _DstBlend: 0
- _GlossMapScale: 1
- _Glossiness: 0.5
- _GlossyReflections: 1
- _Metallic: 0
- _Mode: 0
- _OcclusionStrength: 1
- _Parallax: 0.02
- _SmoothnessTextureChannel: 0
- _SpecularHighlights: 1
- _SrcBlend: 1
- _UVSec: 0
- _ZWrite: 1
m_Colors:
- _Color: {r: 1, g: 1, b: 1, a: 1}
- _EmissionColor: {r: 0, g: 0, b: 0, a: 1}
- _PlaneColor: {r: 1, g: 1, b: 1, a: 0}
- _TexTintColor: {r: 1, g: 1, b: 1, a: 0.4}

View File

@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 2da0ea038f25a4fa998f183878aedf79
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 0
userData:
assetBundleName:
assetBundleVariant:

8
AR/Assets/ExampleAssets/Models.meta generated Normal file
View File

@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 262e742d15f1b4d1487c6709552f51e9
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -1,15 +0,0 @@
@startuml
class test {
+val:int
}
class test2 {
+val2:String
}
@enduml

View File

@ -1,7 +0,0 @@
import PocketBase from 'pocketbase';
const pb = new PocketBase(process.env.PB_URL);
const authData = await pb.collection('users').authWithPassword('michel.deghaud@gmail.com', 'Kimbomaye67');
export default pb;

View File

@ -1,7 +0,0 @@
import PocketBase from 'pocketbase';
const pb = new PocketBase('https://iot.epi.cb85.software');
await pb.admins.authWithPassword('test@example.com', '123456');
const admin = await pb.admins.getOne('ADMIN_ID');

View File

@ -1,16 +0,0 @@
import PocketBase from 'pocketbase';
const pb = new PocketBase('https://iot.epi.cb85.software');
await pb.admins.authWithPassword('test@example.com', '123456');
// fetch a paginated records list
const resultList = await pb.admins.getList(1, 100, {
filter: 'created >= \'2022-01-01 00:00:00\'',
});
// you can also fetch all records at once via getFullList
const admins = await pb.admins.getFullList({ sort: '-created' });
// or fetch only the first admin that matches the specified filter
const admin = await pb.admins.getFirstListItem('email~"test"');

View File

@ -1,11 +0,0 @@
import PocketBase from 'pocketbase';
const pb = new PocketBase('https://iot.epi.cb85.software');
await pb.admins.authWithPassword('test@example.com', '1234567890');
const admin = await pb.admins.update('ADMIN_ID', {
password: '0987654321',
passwodConfirm: '0987654321',
avatar: 4,
});

View File

@ -1,13 +0,0 @@
import PocketBase from 'pocketbase';
const pb = new PocketBase('https://iot.epi.cb85.software');
// example create data
const data = {
"trash_id": "RELATION_RECORD_ID",
"unit": "test",
"status": true,
"value": "test"
};
const record = await pb.collection('data').create(data);

View File

@ -1,5 +0,0 @@
import PocketBase from 'pocketbase';
const pb = new PocketBase('https://iot.epi.cb85.software');
await pb.collection('data').delete('RECORD_ID');

View File

@ -1,7 +0,0 @@
import PocketBase from 'pocketbase';
const pb = new PocketBase('https://iot.epi.cb85.software');
const record = await pb.collection('data').getOne('RECORD_ID', {
expand: 'relField1,relField2.subRelField',
});

View File

@ -1,13 +0,0 @@
import PocketBase from 'pocketbase';
const pb = new PocketBase('https://iot.epi.cb85.software');
// example update data
const data = {
"trash_id": "RELATION_RECORD_ID",
"unit": "test",
"status": true,
"value": "test"
};
const record = await pb.collection('data').update('RECORD_ID', data);

View File

@ -1,10 +0,0 @@
import PocketBase from 'pocketbase';
const pb = new PocketBase('https://iot.epi.cb85.software');
// example create data
const data = {
"owner": "RELATION_RECORD_ID"
};
const record = await pb.collection('trashs').create(data);

View File

@ -1,5 +0,0 @@
import PocketBase from 'pocketbase';
const pb = new PocketBase('https://iot.epi.cb85.software');
await pb.collection('trashs').delete('RECORD_ID');

View File

@ -1,7 +0,0 @@
import PocketBase from 'pocketbase';
const pb = new PocketBase('https://iot.epi.cb85.software');
const record = await pb.collection('trashs').getOne('RECORD_ID', {
expand: 'relField1,relField2.subRelField',
});

View File

@ -1,10 +0,0 @@
import PocketBase from 'pocketbase';
const pb = new PocketBase('https://iot.epi.cb85.software');
// example update data
const data = {
"owner": "RELATION_RECORD_ID"
};
const record = await pb.collection('trashs').update('RECORD_ID', data);

View File

@ -1,7 +0,0 @@
import PocketBase from 'pocketbase';
const pb = new PocketBase('https://iot.epi.cb85.software');
const record = await pb.collection('users').getOne('RECORD_ID', {
expand: 'relField1,relField2.subRelField',
});

View File

@ -1,16 +0,0 @@
import PocketBase from 'pocketbase';
const pb = new PocketBase('https://iot.epi.cb85.software');
const authData = await pb.collection('users').authWithPassword(
'YOUR_USERNAME_OR_EMAIL',
'YOUR_PASSWORD',
);
// after the above you can also access the auth data from the authStore
console.log(pb.authStore.isValid);
console.log(pb.authStore.token);
console.log(pb.authStore.model.id);
// "logout" the last authenticated account
pb.authStore.clear();

File diff suppressed because one or more lines are too long

View File

@ -1,6 +0,0 @@
const { expect } = chai;
const response1 = await insomnia.send();
expect(response1.status).to.equal(200);
const body = JSON.parse(response1.data);
expect(body).to.be.an('object');