This is a platform designed to encourage sharing of skills among seasonal workers. Developed at LudusXR ApS.
This repository is a TurboRepo monorepository for the whole project. It is structured as follows:
apps/webdirectory contains the platform itself (aNext.jsapplication to be hosted with aRediscache and aPostgreSQLdatabase).packages/uidirectory contains reusable UI components used throughout the platform.- Most other folders contain
TypeScriptandESLintconfiguration files.
The platform (application) is structured as follows:
-
drizzledirectory for database migrations and history in both SQL and JSON formats. -
publicdirectory for anything automatically visible to the public once the app is hosted. -
srcdirectory contains the source code. -
.env.*files contain the structure for environment variables. It is further described withZodparsing atsrc/env.js. -
next.config.js,drizzle.config.js,postcss.config.js,prettier.config.js,tailwind.config.js,tsconfig.jsonare configuration files for their respective packages. -
server.jsis the entry point to the application. It shall be launched by executing this file both in development and in production.
The source code for the project (src directory) is structured as follows:
appdirectory contains the routing configuration for the project and is mostly filled withReactcomponents (pages and layouts) and local single-use components as well as configuration for internationalisation of the application.componentsdirectory hosts reusableReactcomponents.imgdirectory contains media files used in the project.libdirectory contains reusable functions that are used often in the project. Functions fromutils.tscan be used both on the server and the client side of the applications. Functions fromsocket.tsare client-side only. Functions fromserver-utis.tsare server-side only.serverdirectory contains server-side bindings and functions for database mutations, authentication,AWSaccess andGoogle APIaccess.stylesdirectory contains globally usedCSSstyles.trpcdirectory contains configuration for theTRPCmodule and generally should not be touched.
- It is generally expected that all database mutations are performed through
TRPCunless absolutely necessary. - All media uploads must go through defined media upload routes (
src/app/api/upload) towardsAmazon S3. - Configuration for internationalisation is stored in
src/app/_dictionaries. - The database layout is defined in
src/server/db/schema.ts, the connection protocol is defined in the same directory in theindex.tsfile. Tailwind CSSis used throughout the project for styling purposes.- It is generally aimed for to host as much as possible logic on the server (backend) and as little as possible on the client (frontend).
- It is generally aimed to avoid linting and styling errors unless absolutely necessary.
- The code is formatted using
Prettier.
LudusXR has begun the process of liquidation as of 26.05.2025.. Any and all concerns and comments regarding this project before 30.06.2025. should be addressed to LudusXR directly. After the passing of the aforementioned date, consultation regarding this project is available on request by email at ari@mistclick.me and by other mediums of communication with the people formerly involved in the development of this project.
Any questions and requests regarding the contents of this repository should be directed to ari@mistclick.me