initial commit
This commit is contained in:
commit
e7987e88a7
70 changed files with 13661 additions and 0 deletions
146
projects.json
Normal file
146
projects.json
Normal file
|
|
@ -0,0 +1,146 @@
|
|||
[
|
||||
{
|
||||
"id": "go-bananas",
|
||||
"title": "go-bananas",
|
||||
"description": "Runtime design-token service. Author design-token themes in a web interface, serve them to any application as CSS custom properties at run time. Consumers install nothing and have no build step. A theme is a document in a database — republishing a theme is a database write; every application picks it up on its next request. No package to version, no dependency to resolve, no build to re-run.",
|
||||
"shortDesc": "Runtime design-token service serving CSS custom properties via HTTP",
|
||||
"techStack": ["Go", "SQLite", "CSS Custom Properties", "Docker", "TypeScript", "React"],
|
||||
"imageUrl": "/images/projects/go-bananas.png",
|
||||
"demoUrl": "https://bananas.urpi.be",
|
||||
"repoUrl": "https://forgejo.urpi.be/dnoulet/go-bananas",
|
||||
"category": "Design System",
|
||||
"featured": true,
|
||||
"order": 1,
|
||||
"tags": ["design-tokens", "css-custom-properties", "runtime-theming", "design-system", "zero-build"],
|
||||
"url": "https://bananas.urpi.be",
|
||||
"tenantUrlPattern": null
|
||||
},
|
||||
{
|
||||
"id": "go-first",
|
||||
"title": "go-first",
|
||||
"description": "URPI's main web application and company portfolio. A modern, full-stack web application showcasing expertise in web application and backend development. Built with Go, React, TypeScript, and deployed on cloud-native infrastructure. Features RESTful API for skills, projects, experience, services, and contact forms.",
|
||||
"shortDesc": "URPI company portfolio and web application showcase",
|
||||
"techStack": ["Go", "React", "TypeScript", "Tailwind CSS", "PostgreSQL", "Redis", "Docker", "Kubernetes", "Gin", "Vite"],
|
||||
"imageUrl": "/images/projects/go-first.png",
|
||||
"demoUrl": "https://urpi.be",
|
||||
"repoUrl": "https://forgejo.urpi.be/dnoulet/go-first",
|
||||
"category": "Full Stack",
|
||||
"featured": true,
|
||||
"order": 2,
|
||||
"tags": ["portfolio", "company-website", "full-stack", "go", "react", "typescript", "tailwind"],
|
||||
"url": "https://urpi.be",
|
||||
"tenantUrlPattern": null
|
||||
},
|
||||
{
|
||||
"id": "go-guess",
|
||||
"title": "go-guess",
|
||||
"description": "Recruitment workspace for interviewers to define job profiles and a reusable question library, manage participants, extract known traits from uploaded CVs, invite candidates who match at least 60% of a posting's labels and skills, and run timed assessments followed by collaborative interviews. Multi-tenant architecture with Go Loose authentication.",
|
||||
"shortDesc": "Multi-tenant recruitment platform with CV parsing, assessments, and collaborative interviews",
|
||||
"techStack": ["Go", "React", "TypeScript", "PostgreSQL", "RabbitMQ", "GORM", "Chi", "Goose", "JWT", "Vite", "Go Loose"],
|
||||
"imageUrl": "/images/projects/go-guess.png",
|
||||
"demoUrl": "https://nmbs.guess.urpi.be",
|
||||
"repoUrl": "https://forgejo.urpi.be/dnoulet/go-guess",
|
||||
"category": "SaaS / HR Tech",
|
||||
"featured": true,
|
||||
"order": 3,
|
||||
"tags": ["recruitment", "multi-tenant", "cv-parsing", "assessments", "interviews", "go-loose", "sso"],
|
||||
"url": "https://nmbs.guess.urpi.be",
|
||||
"tenantUrlPattern": "https://{tenant}.guess.urpi.be"
|
||||
},
|
||||
{
|
||||
"id": "go-loose",
|
||||
"title": "go-loose",
|
||||
"description": "Multi-tenant API-key control plane for Go HTTP services. Web console to register tenant applications, issue and revoke keys, import OpenAPI contracts, and inspect API metadata. Applications use the public client package as fail-closed middleware: requests without a valid key never reach the protected handler. Supports OIDC/SSO, tenant isolation, and audit logging.",
|
||||
"shortDesc": "Multi-tenant API key management and authentication control plane",
|
||||
"techStack": ["Go", "React", "TypeScript", "PostgreSQL", "OIDC", "OpenAPI", "JWT", "Chi", "GORM", "Docker", "Kubernetes"],
|
||||
"imageUrl": "/images/projects/go-loose.png",
|
||||
"demoUrl": "https://auth.urpi.be",
|
||||
"repoUrl": "https://forgejo.urpi.be/dnoulet/go-loose",
|
||||
"category": "Infrastructure / Auth",
|
||||
"featured": true,
|
||||
"order": 4,
|
||||
"tags": ["api-keys", "multi-tenant", "auth", "sso", "oidc", "openapi", "control-plane", "middleware"],
|
||||
"url": "https://auth.urpi.be",
|
||||
"tenantUrlPattern": "https://{tenant}.auth.urpi.be"
|
||||
},
|
||||
{
|
||||
"id": "go-mad",
|
||||
"title": "go-mad",
|
||||
"description": "Web application for managing tenant database connections and running migration scripts. Helps administrators manage database connections for multiple tenants with a beautiful React UI. Features tenant management, application registration, database connection tracking, and goose-style SQL migration execution per tenant database.",
|
||||
"shortDesc": "Multi-tenant database connection and migration management platform",
|
||||
"techStack": ["Go", "React", "PostgreSQL", "Goose", "JWT", "Docker", "Helm", "Kubernetes", "TypeScript", "Vite"],
|
||||
"imageUrl": "/images/projects/go-mad.png",
|
||||
"demoUrl": "https://mad.urpi.be",
|
||||
"repoUrl": "https://forgejo.urpi.be/dnoulet/go-mad",
|
||||
"category": "DevOps / Database",
|
||||
"featured": true,
|
||||
"order": 5,
|
||||
"tags": ["database-management", "migrations", "multi-tenant", "goose", "devops", "tenant-management"],
|
||||
"url": "https://mad.urpi.be",
|
||||
"tenantUrlPattern": null
|
||||
},
|
||||
{
|
||||
"id": "go-places",
|
||||
"title": "go-places",
|
||||
"description": "Travel log service with GraphQL API and image analysis. Authenticates callers against Go Loose SSO. Features place management, picture uploads with inline EXIF analysis and badge generation (Water, Sky, Vivid, Nature), coordinate-based linking of related places and images, and REST/GraphQL endpoints. SQLite-backed with persistent volume on Kubernetes.",
|
||||
"shortDesc": "GraphQL travel log with image analysis, EXIF parsing, and location-based linking",
|
||||
"techStack": ["Go", "React", "TypeScript", "GraphQL", "SQLite", "Go Loose", "Docker", "Kubernetes", "Helm", "EXIF", "Image Analysis"],
|
||||
"imageUrl": "/images/projects/go-places.png",
|
||||
"demoUrl": null,
|
||||
"repoUrl": "https://forgejo.urpi.be/dnoulet/go-places",
|
||||
"category": "Travel / Media",
|
||||
"featured": true,
|
||||
"order": 6,
|
||||
"tags": ["travel-log", "graphql", "image-analysis", "exif", "location-based", "sqlite", "go-loose"],
|
||||
"url": null,
|
||||
"tenantUrlPattern": null
|
||||
},
|
||||
{
|
||||
"id": "go-tell",
|
||||
"title": "go-tell",
|
||||
"description": "Small content CMS: one Go binary that serves the API and embeds the React frontend, backed by a JSON file. Uses Go Loose for authentication to decide who is allowed to edit. Content is seeded in memory and can be mirrored to a JSON file. Single-host deployment at tell.dev with anonymous read access and authenticated writes.",
|
||||
"shortDesc": "Embedded CMS with Go Loose authentication, JSON file storage",
|
||||
"techStack": ["Go", "React", "TypeScript", "JSON Storage", "Go Loose", "OIDC", "Docker", "Single Binary"],
|
||||
"imageUrl": "/images/projects/go-tell.png",
|
||||
"demoUrl": "https://tell.urpi.be",
|
||||
"repoUrl": "https://forgejo.urpi.be/dnoulet/go-tell",
|
||||
"category": "CMS",
|
||||
"featured": true,
|
||||
"order": 7,
|
||||
"tags": ["cms", "embedded", "json-storage", "go-loose", "auth", "single-binary"],
|
||||
"url": "https://tell.urpi.be",
|
||||
"tenantUrlPattern": null
|
||||
},
|
||||
{
|
||||
"id": "go-fish",
|
||||
"title": "go-fish",
|
||||
"description": "Web-based implementation of the classic Go Fish card game. Single-page application with waiting room, matchmaking, and real-time gameplay. Players join a waiting room, see available opponents (green) vs busy ones (red), click to match, and play Go Fish with standard rules. Collect books (4 of a kind), first to 13 wins.",
|
||||
"shortDesc": "Real-time multiplayer Go Fish card game with waiting room and matchmaking",
|
||||
"techStack": ["Go", "WebSockets", "HTML/CSS/JS", "Docker"],
|
||||
"imageUrl": "/images/projects/go-fish.png",
|
||||
"demoUrl": null,
|
||||
"repoUrl": "https://forgejo.urpi.be/dnoulet/go-fish",
|
||||
"category": "Games",
|
||||
"featured": false,
|
||||
"order": 8,
|
||||
"tags": ["game", "multiplayer", "websockets", "go-fish", "cards", "real-time"],
|
||||
"url": null,
|
||||
"tenantUrlPattern": null
|
||||
},
|
||||
{
|
||||
"id": "go-doc",
|
||||
"title": "go-doc",
|
||||
"description": "Documentation and feedback platform for application teams. Authors manage Markdown documents in a React editor, while readers browse role-focused guidance for users, operators, and developers and leave audience-badged comments. The Go API stores documents and feedback as flat files, supports Go Loose authentication with tenant-aware comment visibility, and can serve the embedded frontend as a self-contained application.",
|
||||
"shortDesc": "Markdown documentation portal with audience-focused feedback and tenant-aware access",
|
||||
"techStack": ["Go", "React", "JavaScript", "Markdown", "net/http", "Go Loose", "Docker"],
|
||||
"imageUrl": "/images/projects/go-doc.png",
|
||||
"demoUrl": "https://doc.urpi.be",
|
||||
"repoUrl": "https://forgejo.urpi.be/dnoulet/go-doc",
|
||||
"category": "Documentation / Collaboration",
|
||||
"featured": false,
|
||||
"order": 9,
|
||||
"tags": ["documentation", "markdown", "feedback", "comments", "audience-based", "go-loose", "multi-tenant"],
|
||||
"url": "https://doc.urpi.be",
|
||||
"tenantUrlPattern": null
|
||||
}
|
||||
]
|
||||
Loading…
Add table
Add a link
Reference in a new issue