Add some tools

This commit is contained in:
Florian RICHER 2023-04-02 19:18:14 +02:00
parent 0e29b09650
commit a453ae3326
2 changed files with 131 additions and 33 deletions

View file

@ -1,11 +1,11 @@
import Organization, {Limouzik} from "./Organization"; import Organization, {Limouzik} from "./Organization";
import Tool, {Symfony, React} from "./Tool"; import Tool, {Symfony, React, Unity3D} from "./Tool";
interface Project { interface Project {
organization: Organization, organization: Organization | null,
name: string, name: string,
description: string, description: string,
tools: Array<Tool> tools: Tool[]
} }
export const SiteWebLimouzik: Project = { export const SiteWebLimouzik: Project = {
@ -33,5 +33,5 @@ export const LimouzikV4: Project = {
organization: Limouzik, organization: Limouzik,
name: 'Application V4', name: 'Application V4',
description: 'Application V4', description: 'Application V4',
tools: [React] tools: [Unity3D]
} }

View file

@ -1,9 +1,16 @@
enum ToolType { enum ToolType {
LANGUAGE, FRAMEWORK, LIB_OR_PACKAGE, OTHER LANGUAGE = 0b0001,
FRAMEWORK = 0b0010,
LIB_OR_PACKAGE = 0b0100,
OTHER = 0b1000
} }
enum ToolPlatform { enum ToolPlatform {
MOBILE, WEB_FRONT, WEB_BACK, SYSTEM, DESKTOP MOBILE = 0b00001,
WEB_FRONT = 0b00010,
WEB_BACK = 0b00100,
SYSTEM = 0b01000,
DESKTOP = 0b10000
} }
interface Tool { interface Tool {
@ -13,14 +20,28 @@ interface Tool {
description: string | null, description: string | null,
icon: string | null, icon: string | null,
url: string, url: string,
tools: Array<Tool>, depend_tools: Tool[],
platforms: Array<ToolPlatform> developed_platforms: ToolPlatform[]
} }
export default Tool export default Tool
// RUBY // RUBY
export const TOOLS: Tool[] = [
Ruby, Rails, Php, Symfony, Sylius, Javascript, Typescript, React, Hotwire, Dart, Flutter, Rust,
Java, OpenGL, LWJGL, CSharp, Unity3D, GodotEngine
]
/**
* @param types
* @example
* filterToolByTypes(ToolType.FRAMEWORK | ToolType.LANGUAGE)
*/
export function filterToolByTypes(types: number) {
TOOLS.filter((t) => t.type.valueOf() & types > 0)
}
export const Ruby: Tool = { export const Ruby: Tool = {
type: ToolType.LANGUAGE, type: ToolType.LANGUAGE,
name: 'Ruby', name: 'Ruby',
@ -28,8 +49,8 @@ export const Ruby: Tool = {
icon: null, icon: null,
description: null, description: null,
url: 'https://www.ruby-lang.org/', url: 'https://www.ruby-lang.org/',
tools: [], depend_tools: [],
platforms: [ToolPlatform.MOBILE, ToolPlatform.WEB_BACK] developed_platforms: [ToolPlatform.MOBILE, ToolPlatform.WEB_BACK]
} }
export const Rails: Tool = { export const Rails: Tool = {
@ -39,8 +60,8 @@ export const Rails: Tool = {
icon: null, icon: null,
description: null, description: null,
url: 'https://rubyonrails.org/', url: 'https://rubyonrails.org/',
tools: [Ruby], depend_tools: [Ruby],
platforms: [ToolPlatform.WEB_BACK] developed_platforms: [ToolPlatform.WEB_BACK]
} }
// PHP // PHP
@ -52,8 +73,8 @@ export const Php: Tool = {
version: '5 et 7', version: '5 et 7',
description: null, description: null,
url: 'https://www.php.net/', url: 'https://www.php.net/',
tools: [], depend_tools: [],
platforms: [ToolPlatform.WEB_BACK] developed_platforms: [ToolPlatform.WEB_BACK]
} }
export const Symfony: Tool = { export const Symfony: Tool = {
@ -63,8 +84,19 @@ export const Symfony: Tool = {
icon: null, icon: null,
description: null, description: null,
url: 'https://symfony.com/', url: 'https://symfony.com/',
tools: [Php], depend_tools: [Php],
platforms: [ToolPlatform.WEB_BACK] developed_platforms: [ToolPlatform.WEB_BACK]
}
export const Sylius: Tool = {
type: ToolType.FRAMEWORK,
name: 'Sylius',
version: '1.6',
icon: null,
description: null,
url: 'https://symfony.com/',
depend_tools: [Symfony],
developed_platforms: [ToolPlatform.WEB_BACK]
} }
// JS // JS
@ -76,8 +108,8 @@ export const Javascript: Tool = {
icon: null, icon: null,
description: null, description: null,
url: 'https://www.javascript.com/', url: 'https://www.javascript.com/',
tools: [], depend_tools: [],
platforms: [ToolPlatform.WEB_BACK, ToolPlatform.WEB_FRONT, ToolPlatform.MOBILE, ToolPlatform.DESKTOP] developed_platforms: [ToolPlatform.WEB_BACK, ToolPlatform.WEB_FRONT]
} }
export const Typescript: Tool = { export const Typescript: Tool = {
@ -87,8 +119,8 @@ export const Typescript: Tool = {
icon: null, icon: null,
description: null, description: null,
url: 'https://www.typescriptlang.org/', url: 'https://www.typescriptlang.org/',
tools: [], depend_tools: [],
platforms: Javascript.platforms developed_platforms: Javascript.developed_platforms
} }
export const React: Tool = { export const React: Tool = {
@ -98,8 +130,8 @@ export const React: Tool = {
icon: null, icon: null,
description: null, description: null,
url: 'https://react.dev/', url: 'https://react.dev/',
tools: [Javascript, Typescript], depend_tools: [Javascript, Typescript],
platforms: [ToolPlatform.WEB_FRONT] developed_platforms: [ToolPlatform.WEB_FRONT]
} }
export const Hotwire: Tool = { export const Hotwire: Tool = {
@ -109,8 +141,8 @@ export const Hotwire: Tool = {
icon: null, icon: null,
description: 'Turbo + Stimulus', description: 'Turbo + Stimulus',
url: 'https://stimulus.hotwired.dev/', url: 'https://stimulus.hotwired.dev/',
tools: [Javascript, Typescript, Rails], depend_tools: [Javascript, Typescript, Rails],
platforms: [ToolPlatform.WEB_FRONT] developed_platforms: [ToolPlatform.WEB_FRONT]
} }
// CSS // CSS
@ -124,32 +156,98 @@ export const Dart: Tool = {
icon: null, icon: null,
description: null, description: null,
url: 'https://dart.dev/', url: 'https://dart.dev/',
tools: [], depend_tools: [],
platforms: [ToolPlatform.MOBILE, ToolPlatform.SYSTEM, ToolPlatform.WEB_FRONT, ToolPlatform.WEB_BACK, ToolPlatform.DESKTOP] developed_platforms: [ToolPlatform.MOBILE, ToolPlatform.DESKTOP]
} }
export const Flutter : Tool = { export const Flutter: Tool = {
type: ToolType.FRAMEWORK, type: ToolType.FRAMEWORK,
name: 'Flutter', name: 'Flutter',
version: '2 - 3', version: '2 - 3',
icon: null, icon: null,
description: null, description: null,
url: 'https://flutter.dev/', url: 'https://flutter.dev/',
tools: [Dart], depend_tools: [Dart],
platforms: [ToolPlatform.MOBILE, ToolPlatform.WEB_FRONT, ToolPlatform.WEB_BACK, ToolPlatform.DESKTOP] developed_platforms: Dart.developed_platforms
} }
// RUST // RUST
export const Rust : Tool = { export const Rust: Tool = {
type: ToolType.LANGUAGE, type: ToolType.LANGUAGE,
name: 'Rust', name: 'Rust',
version: 'Édition 2018, 2021', version: 'Édition 2018, 2021',
icon: null, icon: null,
description: null, description: null,
url: 'https://www.rust-lang.org/', url: 'https://www.rust-lang.org/',
tools: [], depend_tools: [],
platforms: [ToolPlatform.SYSTEM, ToolPlatform.WEB_FRONT, ToolPlatform.WEB_BACK] developed_platforms: [ToolPlatform.SYSTEM, ToolPlatform.WEB_FRONT, ToolPlatform.WEB_BACK]
} }
// OTHER // 3D
export const Java: Tool = {
type: ToolType.LANGUAGE,
name: 'Java',
version: '5 - 8',
icon: null,
description: null,
url: 'https://www.java.com/',
depend_tools: [],
developed_platforms: [ToolPlatform.MOBILE, ToolPlatform.WEB_BACK, ToolPlatform.DESKTOP]
}
export const OpenGL: Tool = {
type: ToolType.OTHER,
name: 'OpenGL',
version: '<= 4.0',
icon: null,
description: null,
url: 'https://www.opengl.org/',
depend_tools: [],
developed_platforms: [ToolPlatform.DESKTOP]
}
export const LWJGL: Tool = {
type: ToolType.LIB_OR_PACKAGE,
name: 'LWJGL',
version: '2 et 3',
icon: null,
description: null,
url: 'https://www.opengl.org/',
depend_tools: [Java, OpenGL],
developed_platforms: [ToolPlatform.DESKTOP]
}
export const CSharp: Tool = {
type: ToolType.LANGUAGE,
name: 'C#',
version: null,
icon: null,
description: null,
url: 'https://www.microsoft.com',
depend_tools: [],
developed_platforms: [ToolPlatform.DESKTOP, ToolPlatform.MOBILE, ToolPlatform.WEB_FRONT]
}
export const Unity3D: Tool = {
type: ToolType.OTHER,
name: 'Unity3D',
version: '2018-2019',
icon: null,
description: null,
url: 'https://unity.com/',
depend_tools: [CSharp, OpenGL],
developed_platforms: CSharp.developed_platforms
}
export const GodotEngine: Tool = {
type: ToolType.OTHER,
name: 'GodotEngine',
version: '3.x',
icon: null,
description: null,
url: 'https://godotengine.org/',
depend_tools: [CSharp, OpenGL],
developed_platforms: CSharp.developed_platforms
}