enum ToolType { LANGUAGE, FRAMEWORK, LIB_OR_PACKAGE, OTHER } enum ToolPlatform { MOBILE, WEB_FRONT, WEB_BACK, SYSTEM, DESKTOP } interface Tool { type: ToolType, name: string, version: string | null, description: string | null, icon: string | null, url: string, tools: Array, platforms: Array } export default Tool // RUBY export const Ruby: Tool = { type: ToolType.LANGUAGE, name: 'Ruby', version: '2.7 - 3.2', icon: null, description: null, url: 'https://www.ruby-lang.org/', tools: [], platforms: [ToolPlatform.MOBILE, ToolPlatform.WEB_BACK] } export const Rails: Tool = { type: ToolType.FRAMEWORK, name: 'Ruby on rails', version: '5.1 - 7.0', icon: null, description: null, url: 'https://rubyonrails.org/', tools: [Ruby], platforms: [ToolPlatform.WEB_BACK] } // PHP export const Php: Tool = { type: ToolType.LANGUAGE, name: 'PHP', icon: null, version: '5 et 7', description: null, url: 'https://www.php.net/', tools: [], platforms: [ToolPlatform.WEB_BACK] } export const Symfony: Tool = { type: ToolType.FRAMEWORK, name: 'Symfony', version: '4.0 - 5.0', icon: null, description: null, url: 'https://symfony.com/', tools: [Php], platforms: [ToolPlatform.WEB_BACK] } // JS export const Javascript: Tool = { type: ToolType.LANGUAGE, name: 'Javascript', version: null, icon: null, description: null, url: 'https://www.javascript.com/', tools: [], platforms: [ToolPlatform.WEB_BACK, ToolPlatform.WEB_FRONT, ToolPlatform.MOBILE, ToolPlatform.DESKTOP] } export const Typescript: Tool = { type: ToolType.LANGUAGE, name: 'Typescript', version: null, icon: null, description: null, url: 'https://www.typescriptlang.org/', tools: [], platforms: Javascript.platforms } export const React: Tool = { type: ToolType.FRAMEWORK, name: 'React', version: '14, 15, 16, 17, 18', icon: null, description: null, url: 'https://react.dev/', tools: [Javascript, Typescript], platforms: [ToolPlatform.WEB_FRONT] } export const Hotwire: Tool = { type: ToolType.FRAMEWORK, name: 'Hotwire', version: '2 - 3', icon: null, description: 'Turbo + Stimulus', url: 'https://stimulus.hotwired.dev/', tools: [Javascript, Typescript, Rails], platforms: [ToolPlatform.WEB_FRONT] } // CSS // FLUTTER export const Dart: Tool = { type: ToolType.LANGUAGE, name: 'Dart', version: '2 - 3', icon: null, description: null, url: 'https://dart.dev/', tools: [], platforms: [ToolPlatform.MOBILE, ToolPlatform.SYSTEM, ToolPlatform.WEB_FRONT, ToolPlatform.WEB_BACK, ToolPlatform.DESKTOP] } export const Flutter : Tool = { type: ToolType.FRAMEWORK, name: 'Flutter', version: '2 - 3', icon: null, description: null, url: 'https://flutter.dev/', tools: [Dart], platforms: [ToolPlatform.MOBILE, ToolPlatform.WEB_FRONT, ToolPlatform.WEB_BACK, ToolPlatform.DESKTOP] } // RUST export const Rust : Tool = { type: ToolType.LANGUAGE, name: 'Rust', version: 'Édition 2018, 2021', icon: null, description: null, url: 'https://www.rust-lang.org/', tools: [], platforms: [ToolPlatform.SYSTEM, ToolPlatform.WEB_FRONT, ToolPlatform.WEB_BACK] } // OTHER