This commit is contained in:
Florian RICHER 2023-06-04 00:51:03 +02:00
parent d025aded31
commit 6391f4abf4
9 changed files with 102 additions and 622 deletions

View file

@ -5,6 +5,31 @@ import TimelineLabel from './timeline/TimelineLabel'
import TimelineCard from './timeline/TimelineCard'
import TimelineCardSummary from './timeline/TimelineCardSummary'
import TimelineCardContent from './timeline/TimelineCardContent'
import Tag from './Tag'
const REACT_TAG = <Tag name="React" url="https://fr.legacy.reactjs.org/" />
const SYMFONY_4_TAG = <Tag name="Symfony 4" url="https://symfony.com/" />
const FLUTTER_TAG = <Tag name="Flutter" url="https://flutter.dev/" />
const RUBY_ON_RAILS_TAG = <Tag name="Ruby on rails" url="https://rubyonrails.org/" />
const HOTWIRED_TAG = <Tag name="Hotwired" url="https://hotwired.dev/" />
const RUST_TAG = <Tag name="Rust" url="https://www.rust-lang.org/" />
const DOCKER_TAG = <Tag name="Docker" url="https://www.docker.com/" />
const STEAM_TAG = <Tag name="Steam API" url="https://partner.steamgames.com/doc/sdk/api/example" />
const GITLAB_CI_TAG = <Tag name="Gitlab CI" url="https://docs.gitlab.com/ee/ci/" />
const UNITY_TAG = <Tag name="Unity 3D" url="https://unity.com/fr" />
const WORDPRESS_TAG = <Tag name="Wordpress" url="https://wordpress.com/fr/" />
const CORDOVA_TAG = <Tag name="Cordova" url="https://cordova.apache.org/" />
const ELECTRON_TAG = <Tag name="Electron" url="https://www.electronjs.org/" />
const LWJGL_TAG = <Tag name="LWJGL" url="https://www.lwjgl.org/" />
const OPENGL_TAG = <Tag name="OpenGL" url="https://www.opengl.org/" />
const VULKAN_TAG = <Tag name="Vulkan" url="https://www.vulkan.org/" />
const JAVA_TAG = <Tag name="Java" url="https://www.java.com/fr/" />
const MIDI_TAG = <Tag name="MIDI" url="https://fr.wikipedia.org/wiki/Musical_Instrument_Digital_Interface" />
const REQUIREJS_TAG = <Tag name="RequireJS" url="https://requirejs.org/" />
const WEBPACK_TAG = <Tag name="Webpack" url="https://webpack.js.org/" />
const VITE_TAG = <Tag name="Vite" url="https://vitejs.dev/" />
const MAVEN_TAG = <Tag name="Maven" url="https://maven.apache.org/" />
const GRADLE_TAG = <Tag name="Gradle" url="https://gradle.org/" />
function MonParcours() {
return (
@ -13,28 +38,38 @@ function MonParcours() {
<TimelineElement>
<TimelineLabel>2019 - Aujourdhui</TimelineLabel>
<TimelineCard>
<TimelineCardSummary>Développeur dapplication Web, Mobile et Système (CDI)</TimelineCardSummary>
<TimelineCardSummary
tags={[
REACT_TAG, SYMFONY_4_TAG, FLUTTER_TAG, RUBY_ON_RAILS_TAG, HOTWIRED_TAG, RUST_TAG, WEBPACK_TAG, VITE_TAG, GRADLE_TAG
]}
>
Développeur dapplication Web, Mobile et Système (CDI)
</TimelineCardSummary>
<TimelineCardContent>
<p>Développement dapplication Symfony, React, Flutter, Rust et Ruby on rails (6 et 7) pour des clients.</p><br/>
<p>Je développe surtout des applications Flutter et Ruby on rails avec laide de Hotwired.</p><br/>
<p>Développement dapplication Symfony, React, Flutter, Rust et Ruby on rails (6 et 7) pour des clients.</p><br />
<p>Je développe surtout des applications Flutter et Ruby on rails avec laide de Hotwired.</p><br />
<i>Unova France</i><br />
<i>11 Septembre 2019 - Toujours en CDI</i><br/><br />
<i>React</i>, <i>Symfony 4</i>, <i>Flutter</i>, <i>Ruby on rails (UJS et Hotwired)</i>, <i>Rust</i>
<i>11 Septembre 2019 - Toujours en CDI</i><br /><br />
</TimelineCardContent>
</TimelineCard>
</TimelineElement>
<TimelineElement>
<TimelineLabel>2018 - 2019</TimelineLabel>
<TimelineCard>
<TimelineCardSummary>Développeur Web Symfony 4 et de Jeu avec Unity 3D (CDI)</TimelineCardSummary>
<TimelineCardSummary
tags={[
UNITY_TAG, SYMFONY_4_TAG, GITLAB_CI_TAG, STEAM_TAG, DOCKER_TAG, MIDI_TAG
]}
>
Développeur Web Symfony 4 et de Jeu avec Unity 3D (CDI)
</TimelineCardSummary>
<TimelineCardContent>
<p>Développement du Site en Symfony 4 (Changement graphique, ajout de fonctionnalité)</p><br />
<p>Intégration du déploiement continue de la nouvelle application Limouzik refaite sous Unity 3D sur Steam</p><br/>
<p>Intégration du déploiement continue de la nouvelle application Limouzik refaite sous Unity 3D sur Steam</p><br />
<i>Limouzik SAS</i><br />
<i>03 Septembre 2018 - 31 Juillet 2019 (Rupture pour raison économique)</i><br/><br />
<i>Unity 3D</i>, <i>Symfony 4</i>, <i>Gitlab CI</i>, <i>Steam API</i>, <i>Docker</i>
<i>03 Septembre 2018 - 31 Juillet 2019 (Rupture pour raison économique)</i>
</TimelineCardContent>
</TimelineCard>
</TimelineElement>
@ -50,7 +85,13 @@ function MonParcours() {
</TimelineCardContent>
</TimelineCard>
<TimelineCard>
<TimelineCardSummary>Développeur Web Symfony 4 (Projet Tuteuré)</TimelineCardSummary>
<TimelineCardSummary
tags={[
SYMFONY_4_TAG
]}
>
Développeur Web Symfony 4 (Projet Tuteuré)
</TimelineCardSummary>
<TimelineCardContent>
<p>Développement du site sliz.me avec Symfony 4.</p><br />
<p>Ajout de QRCode sur l'ensemble des pages d'un fichier PDF pour que d'autres personnes puissent télécharger le PDF ou une page en question durant une conférence.</p><br />
@ -61,7 +102,13 @@ function MonParcours() {
</TimelineCardContent>
</TimelineCard>
<TimelineCard>
<TimelineCardSummary>Développeur Web Symfony 4 et de Jeu avec Unity 3D (Alternance)</TimelineCardSummary>
<TimelineCardSummary
tags={[
UNITY_TAG, SYMFONY_4_TAG, STEAM_TAG, REACT_TAG, WORDPRESS_TAG, CORDOVA_TAG, ELECTRON_TAG, MIDI_TAG, WEBPACK_TAG
]}
>
Développeur Web Symfony 4 et de Jeu avec Unity 3D (Alternance)
</TimelineCardSummary>
<TimelineCardContent>
<p>Maintenance de la version du site en Wordpress + Refonte complète du site (Graphique et technique) avec Symfony 4.</p><br />
@ -70,9 +117,10 @@ function MonParcours() {
<p>Ajout de lapplication Limouzik sur le Play Store (Android), AppStore (iOS) et sur Steam (PC) avec lintégration de SteamAPI</p><br />
<i>Lensemble du travail a é effectué par mes soins</i><br /><br />
<i>Limouzik SAS</i><br />
<i>04 Septembre 2017 - 24 Aout 2018</i><br /><br />
<i>Unity 3D</i>, <i>Symfony 4</i>, <i>Steam API</i>, <i>React</i>, <i>Wordpress</i>
<i>04 Septembre 2017 - 24 Aout 2018</i>
</TimelineCardContent>
</TimelineCard>
</TimelineElement>
@ -86,7 +134,13 @@ function MonParcours() {
</TimelineCardContent>
</TimelineCard>
<TimelineCard>
<TimelineCardSummary>Développement dapplication Web React et MIDI + Site Wordpress (Stage + CDD)</TimelineCardSummary>
<TimelineCardSummary
tags={[
REACT_TAG, WORDPRESS_TAG, MIDI_TAG, REQUIREJS_TAG
]}
>
Développement dapplication Web React et MIDI + Site Wordpress (Stage + CDD)
</TimelineCardSummary>
<TimelineCardContent>
<p>Développement dune application musicale en utilisant le protocole MIDI (+ Synthèse sonore).</p><br />
<p>La partie affichage a é développé avec React et RequireJS (Gestion de module).</p><br />
@ -110,24 +164,30 @@ function MonParcours() {
</TimelineCardContent>
</TimelineCard>
<TimelineCard>
<TimelineCardSummary>Développement en Java (Perso)</TimelineCardSummary>
<TimelineCardSummary
tags={[
JAVA_TAG, MAVEN_TAG
]}
>
Développement en Java (Perso)
</TimelineCardSummary>
<TimelineCardContent>
<p>Apprentissage dans un premier temps du langage avec le site du zéro et les quelques vidéos sur Youtube.</p><br />
<p>Ensuite, j'ai commencé à développer des projets Perso (Plugin Minecraft, Mod Minecraft) dans un premier temps.</p><br />
<p>Puis, j'ai commencé à développer des petits jeux de A à Z (Petit moteur de physique + graphique + audio) et à m'entrainer avec des amis pour participer à des concours comme le Ludum dare et la Global Game Jam.</p><br />
<i>Java 1.5, 1.6, 1.7, 8</i><br />
<i>Maven et Gradle</i>
<p>Puis, j'ai commencé à développer des petits jeux de A à Z (Petit moteur de physique + graphique + audio) et à m'entrainer avec des amis pour participer à des concours comme le Ludum dare et la Global Game Jam.</p>
</TimelineCardContent>
</TimelineCard>
<TimelineCard>
<TimelineCardSummary>Utilisation de lAPI graphique OpenGL (Perso)</TimelineCardSummary>
<TimelineCardSummary
tags={[
LWJGL_TAG, OPENGL_TAG
]}
>
Utilisation de lAPI graphique OpenGL (Perso)
</TimelineCardSummary>
<TimelineCardContent>
<p>Après avoir développé quelques trucs sur Minecraft. Je me suis interessé à son fonctionnement et j'ai découvert la librairie LWJGL utilisé dans Minecraft.</p><br />
<p>J'ai très vite voulu développer mes propres Mini-Jeux en OpenGL avec cette librairie.</p><br />
<i>LWJGL 2 et 3</i><br />
<i>OpenGL 2 et OpenGL Modern (3.3+)</i>
<p>J'ai très vite voulu développer mes propres Mini-Jeux en OpenGL avec cette librairie.</p>
</TimelineCardContent>
</TimelineCard>
</TimelineElement>

View file

@ -1,2 +1,3 @@
.tag {
@apply text-white bg-gray-500 rounded-lg px-3 py-1 font-thin text-sm;
}

View file

@ -1,14 +1,15 @@
import './Tag.scss'
interface TagProps {
name: string
name: string,
url?: string
}
function Tag(props: TagProps) {
function Tag({ name, url }: TagProps) {
return (
<span className="tag">
{props.name}
</span>
<a className="tag" href={url} target='_blank'>
{name}
</a>
)
}

View file

@ -1,5 +1,4 @@
import react, {ReactNode} from 'react'
import Project from '../../data/Project'
type TimelineCardContentProps = {
children: ReactNode

View file

@ -1,13 +1,20 @@
import react, {ReactNode} from 'react'
import Project from '../../data/Project'
type TimelineCardSummaryProps = {
children: ReactNode
children: ReactNode,
tags?: ReactNode[]
}
function TimelineCardSummary({ children } : TimelineCardSummaryProps) {
function TimelineCardSummary({ children, tags } : TimelineCardSummaryProps) {
return (
<>{children}</>
<>
{children}
{
tags && <div className='flex flex-wrap gap-2 mt-2'>
{ tags }
</div>
}
</>
)
}

View file

@ -1,5 +1,4 @@
import react, {ReactNode} from 'react'
import Project from '../../data/Project'
type TimelineLabelProps = {
children: ReactNode

View file

@ -1,26 +0,0 @@
interface Organization {
name: string,
siren: string,
site_web: string,
}
export default Organization
export const Limouzik: Organization = {
name: 'Limouzik',
siren: '824148738',
site_web: 'https://limouzik.com/'
}
export const Unova: Organization = {
name: 'Unova',
siren: '824505689',
site_web: 'https://www.unova.fr/'
}
export const Autoentreprise: Organization = {
name: 'Ma micro-entreprise',
siren: '852444964',
site_web: 'https://florianricher.fr/'
}

View file

@ -1,150 +0,0 @@
import Organization, {Limouzik, Unova} from "./Organization";
import Tool, {
Symfony,
React,
Unity3D,
MIDI,
SteamAPI,
RequireJS,
Webpack,
Cordova,
Electron,
GodotEngine, Javascript, Rails, Flutter, Sylius, Java, OpenGL, Tailwind, Hotwire, Rust
} from "./Tool";
interface Project {
organization: Organization | null,
name: string,
description: string,
start_date: Date,
end_date: Date | null,
tools: Tool[]
}
export default Project
// LIMOUZIK
export const SiteWebLimouzik: Project = {
organization: Limouzik,
name: 'Site web Limouzik',
description: 'Site web Limouzik',
start_date: new Date('2017-05-01'),
end_date: new Date('2019-07-31'),
tools: [Symfony]
}
export const LimouzikV2: Project = {
organization: Limouzik,
name: 'Application V2',
description: 'Application V2',
start_date: new Date('2017-05-01'),
end_date: new Date('2019-07-31'),
tools: [React, MIDI, SteamAPI, RequireJS]
}
export const LimouzikV3: Project = {
organization: Limouzik,
name: 'Application V3',
description: 'Application V3',
start_date: new Date('2017-05-01'),
end_date: new Date('2019-07-31'),
tools: [React, MIDI, SteamAPI, Webpack, Cordova, Electron]
}
export const LimouzikV4: Project = {
organization: Limouzik,
name: 'Application V4',
description: 'Application V4',
start_date: new Date('2017-05-01'),
end_date: new Date('2019-07-31'),
tools: [Unity3D, MIDI, SteamAPI]
}
// UNOVA
export const Itamelia: Project = {
organization: Unova,
name: 'Itamelia',
description: 'Itamelia',
start_date: new Date('2017-05-01'),
end_date: new Date('2019-07-31'),
tools: [Sylius, Javascript]
}
export const Scopema: Project = {
organization: Unova,
name: 'Scopema',
description: 'Scopema',
start_date: new Date('2017-05-01'),
end_date: new Date('2019-07-31'),
tools: [GodotEngine, React]
}
export const NWE: Project = {
organization: Unova,
name: 'NWE',
description: 'NWE',
start_date: new Date('2017-05-01'),
end_date: new Date('2019-07-31'),
tools: [Rails, React, Flutter]
}
export const SJLM: Project = {
organization: Unova,
name: 'Saint just le martel',
description: 'Saint just le martel',
start_date: new Date('2017-05-01'),
end_date: new Date('2019-07-31'),
tools: [Rails, Flutter]
}
export const StepReadyGo: Project = {
organization: Unova,
name: 'StepReadyGo',
description: 'StepReadyGo',
start_date: new Date('2017-05-01'),
end_date: new Date('2019-07-31'),
tools: [Rails, Flutter, OpenGL]
}
export const Ubermed: Project = {
organization: Unova,
name: 'Oméa',
description: 'Oméa',
start_date: new Date('2017-05-01'),
end_date: new Date('2019-07-31'),
tools: [Rails, Flutter]
}
export const PerAnkh: Project = {
organization: Unova,
name: 'PerAnkh',
description: 'PerAnkh',
start_date: new Date('2017-05-01'),
end_date: new Date('2019-07-31'),
tools: [Rails, Flutter, Tailwind, Hotwire, Webpack]
}
export const Doorsav: Project = {
organization: Unova,
name: 'Doorsav',
description: 'Doorsav',
start_date: new Date('2017-05-01'),
end_date: new Date('2019-07-31'),
tools: [Rails, Tailwind, Hotwire]
}
export const Machoke: Project = {
organization: Unova,
name: 'Machoke',
description: 'Machoke',
start_date: new Date('2017-05-01'),
end_date: new Date('2019-07-31'),
tools: [Rust, Rails, Tailwind, Hotwire]
}
export const PROJECTS: Project[] = [
SiteWebLimouzik, LimouzikV2, LimouzikV3, LimouzikV4,
Itamelia, NWE, Doorsav, PerAnkh, Ubermed, SJLM, Scopema, StepReadyGo, Machoke
]

View file

@ -1,411 +0,0 @@
import RUBY_IMG from '../assets/images/tools/ruby.svg'
import RUBY_ON_RAILS_IMG from '../assets/images/tools/ruby_on_rails.svg'
import PHP_IMG from '../assets/images/tools/php.svg'
import SYMFONY_IMG from '../assets/images/tools/symfony.svg'
import SYLIUS_IMG from '../assets/images/tools/sylius.png'
import JAVASCRIPT_IMG from '../assets/images/tools/javascript.svg'
import TYPESCRIPT_IMG from '../assets/images/tools/typescript.svg'
import REACT_IMG from '../assets/images/tools/react.svg'
import HOTWIRE_IMG from '../assets/images/tools/hotwire.svg'
import CSS_IMG from '../assets/images/tools/css3.svg'
import SASS_IMG from '../assets/images/tools/sass.svg'
import TAILWIND_IMG from '../assets/images/tools/tailwindcss.svg'
import BOOTSTRAP_IMG from '../assets/images/tools/bootstrap.svg'
import DART_IMG from '../assets/images/tools/dart.svg'
import FLUTTER_IMG from '../assets/images/tools/flutter.svg'
import RUST_IMG from '../assets/images/tools/rust.svg'
import JAVA_IMG from '../assets/images/tools/java.svg'
import OPENGL_IMG from '../assets/images/tools/opengl.svg'
import LWJGL_IMG from '../assets/images/tools/lwjgl.svg'
import CSHARP_IMG from '../assets/images/tools/csharp.svg'
import UNITY3D_IMG from '../assets/images/tools/unity3d.svg'
import GODOTENGINE_IMG from '../assets/images/tools/godotengine.svg'
import WEBPACK_IMG from '../assets/images/tools/webpack.svg'
import VITE_IMG from '../assets/images/tools/vite.svg'
import REQUIREJS_IMG from '../assets/images/tools/requirejs.svg'
import STEAMAPI_IMG from '../assets/images/tools/steamapi.svg'
import MIDI_IMG from '../assets/images/tools/midi.svg'
import CORDOVA_IMG from '../assets/images/tools/cordova.svg'
import ELECTRON_IMG from '../assets/images/tools/electron.svg'
enum ToolType {
LANGUAGE = 0b0001,
FRAMEWORK = 0b0010,
LIB_OR_PACKAGE = 0b0100,
OTHER = 0b1000
}
enum ToolPlatform {
MOBILE = 0b00001,
WEB_FRONT = 0b00010,
WEB_BACK = 0b00100,
SYSTEM = 0b01000,
DESKTOP = 0b10000
}
interface Tool {
type: ToolType,
name: string,
version: string | null,
description: string | null,
icon: string | null,
url: string,
depend_tools: Tool[],
developed_platforms: ToolPlatform[]
}
export default Tool
// RUBY
export const Ruby: Tool = {
type: ToolType.LANGUAGE,
name: 'Ruby',
version: '2.7 - 3.2',
icon: RUBY_IMG,
description: null,
url: 'https://www.ruby-lang.org/',
depend_tools: [],
developed_platforms: [ToolPlatform.MOBILE, ToolPlatform.WEB_BACK]
}
export const Rails: Tool = {
type: ToolType.FRAMEWORK,
name: 'Ruby on rails',
version: '5.1 - 7.0',
icon: RUBY_ON_RAILS_IMG,
description: null,
url: 'https://rubyonrails.org/',
depend_tools: [Ruby],
developed_platforms: [ToolPlatform.WEB_BACK]
}
// PHP
export const Php: Tool = {
type: ToolType.LANGUAGE,
name: 'PHP',
icon: PHP_IMG,
version: '5 et 7',
description: null,
url: 'https://www.php.net/',
depend_tools: [],
developed_platforms: [ToolPlatform.WEB_BACK]
}
export const Symfony: Tool = {
type: ToolType.FRAMEWORK,
name: 'Symfony',
version: '4.0 - 5.0',
icon: SYMFONY_IMG,
description: null,
url: 'https://symfony.com/',
depend_tools: [Php],
developed_platforms: [ToolPlatform.WEB_BACK]
}
export const Sylius: Tool = {
type: ToolType.FRAMEWORK,
name: 'Sylius',
version: '1.6',
icon: SYLIUS_IMG,
description: null,
url: 'https://symfony.com/',
depend_tools: [Symfony],
developed_platforms: [ToolPlatform.WEB_BACK]
}
// JS
export const Javascript: Tool = {
type: ToolType.LANGUAGE,
name: 'Javascript',
version: null,
icon: JAVASCRIPT_IMG,
description: null,
url: 'https://www.javascript.com/',
depend_tools: [],
developed_platforms: [ToolPlatform.WEB_BACK, ToolPlatform.WEB_FRONT]
}
export const Typescript: Tool = {
type: ToolType.LANGUAGE,
name: 'Typescript',
version: null,
icon: TYPESCRIPT_IMG,
description: null,
url: 'https://www.typescriptlang.org/',
depend_tools: [],
developed_platforms: Javascript.developed_platforms
}
export const React: Tool = {
type: ToolType.FRAMEWORK,
name: 'React',
version: '14, 15, 16, 17, 18',
icon: REACT_IMG,
description: null,
url: 'https://react.dev/',
depend_tools: [Javascript, Typescript],
developed_platforms: [ToolPlatform.WEB_FRONT]
}
export const Hotwire: Tool = {
type: ToolType.FRAMEWORK,
name: 'Hotwire',
version: '2 - 3',
icon: HOTWIRE_IMG,
description: 'Turbo + Stimulus',
url: 'https://stimulus.hotwired.dev/',
depend_tools: [Javascript, Typescript, Rails],
developed_platforms: [ToolPlatform.WEB_FRONT]
}
// CSS
export const CSS: Tool = {
type: ToolType.LANGUAGE,
name: 'CSS',
version: null,
icon: CSS_IMG,
description: null,
url: 'https://www.w3schools.com/css/',
depend_tools: [],
developed_platforms: [ToolPlatform.MOBILE, ToolPlatform.DESKTOP, ToolPlatform.WEB_FRONT]
}
export const SASS: Tool = {
type: ToolType.LANGUAGE,
name: 'SASS',
version: null,
icon: SASS_IMG,
description: null,
url: 'https://sass-lang.com/',
depend_tools: [CSS],
developed_platforms: CSS.developed_platforms
}
export const Tailwind: Tool = {
type: ToolType.OTHER,
name: 'Tailwind',
version: null,
icon: TAILWIND_IMG,
description: null,
url: 'https://tailwindcss.com/',
depend_tools: [SASS],
developed_platforms: SASS.developed_platforms
}
export const Bootstrap: Tool = {
type: ToolType.OTHER,
name: 'Bootstrap',
version: null,
icon: BOOTSTRAP_IMG,
description: null,
url: 'https://getbootstrap.com/',
depend_tools: [CSS],
developed_platforms: CSS.developed_platforms
}
// FLUTTER
export const Dart: Tool = {
type: ToolType.LANGUAGE,
name: 'Dart',
version: '2 - 3',
icon: DART_IMG,
description: null,
url: 'https://dart.dev/',
depend_tools: [],
developed_platforms: [ToolPlatform.MOBILE, ToolPlatform.DESKTOP]
}
export const Flutter: Tool = {
type: ToolType.FRAMEWORK,
name: 'Flutter',
version: '2 - 3',
icon: FLUTTER_IMG,
description: null,
url: 'https://flutter.dev/',
depend_tools: [Dart],
developed_platforms: Dart.developed_platforms
}
// RUST
export const Rust: Tool = {
type: ToolType.LANGUAGE,
name: 'Rust',
version: 'Édition 2018, 2021',
icon: RUST_IMG,
description: null,
url: 'https://www.rust-lang.org/',
depend_tools: [],
developed_platforms: [ToolPlatform.SYSTEM, ToolPlatform.WEB_FRONT, ToolPlatform.WEB_BACK]
}
// 3D
export const Java: Tool = {
type: ToolType.LANGUAGE,
name: 'Java',
version: '5 - 8',
icon: JAVA_IMG,
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: OPENGL_IMG,
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: LWJGL_IMG,
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: CSHARP_IMG,
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: UNITY3D_IMG,
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: GODOTENGINE_IMG,
description: null,
url: 'https://godotengine.org/',
depend_tools: [CSharp, OpenGL],
developed_platforms: CSharp.developed_platforms
}
// Builder
export const Webpack: Tool = {
type: ToolType.OTHER,
name: 'Webpack',
version: null,
icon: WEBPACK_IMG,
description: null,
url: 'https://webpack.js.org/',
depend_tools: [],
developed_platforms: CSS.developed_platforms
}
export const Vite: Tool = {
type: ToolType.OTHER,
name: 'Vite',
version: null,
icon: VITE_IMG,
description: null,
url: 'https://vitejs.dev/',
depend_tools: [],
developed_platforms: CSS.developed_platforms
}
export const RequireJS: Tool = {
type: ToolType.OTHER,
name: 'RequireJS',
version: null,
icon: REQUIREJS_IMG,
description: null,
url: 'https://requirejs.org/',
depend_tools: [],
developed_platforms: CSS.developed_platforms
}
// Other
export const SteamAPI: Tool = {
type: ToolType.LIB_OR_PACKAGE,
name: 'SteamAPI',
version: null,
icon: STEAMAPI_IMG,
description: null,
url: 'https://steamcommunity.com/dev',
depend_tools: [],
developed_platforms: Unity3D.developed_platforms
}
export const MIDI: Tool = {
type: ToolType.OTHER,
name: 'MIDI',
version: null,
icon: MIDI_IMG,
description: null,
url: 'https://en.wikipedia.org/wiki/MIDI',
depend_tools: [],
developed_platforms: Unity3D.developed_platforms
}
export const Cordova: Tool = {
type: ToolType.OTHER,
name: 'Cordova',
version: null,
icon: CORDOVA_IMG,
description: null,
url: 'https://cordova.apache.org/',
depend_tools: [],
developed_platforms: [ToolPlatform.MOBILE]
}
export const Electron: Tool = {
type: ToolType.OTHER,
name: 'Electron',
version: null,
icon: ELECTRON_IMG,
description: null,
url: 'https://www.electronjs.org/',
depend_tools: [],
developed_platforms: [ToolPlatform.DESKTOP]
}
export const TOOLS: Tool[] = [
Ruby, Rails, Php, Symfony, Sylius, Javascript, Typescript, React, Hotwire, Dart, Flutter, Rust,
CSS, SASS, Tailwind, Bootstrap,
Webpack, RequireJS, Vite,
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)
}