Leandro Pareja Get in touch

Project / Infrastructure & application engineering

Legioner Solutions.

Access automation, application security & operations.
Leandro Pareja · Node.js · MongoDB · Systems administration

Project overview

I built and maintained application workflows that connected community membership, access requests, staff decisions, and operational information. Legioner Solutions brought those activities into a structured system using Node.js, discord.js v14, MongoDB, and Google Sheets integrations.

My work combined application and integration development with systems administration: managing server configurations, deploying applications, maintaining services, and troubleshooting technical issues. The goal was to make recurring administrative work easier to coordinate while keeping staff responsible for approval decisions and in-game fulfillment.

20,000+Community members

Membership-based scale, not a concurrent-user or throughput measurement.

~70%Less manual administration

Project-reported estimate across automated activities.

The workflow at a glance

The application coordinates the request. Staff make the decision and complete the fulfillment.

01 → 04 From request to completion

  1. User inputSubmit a guided requestCommands and forms collect details. Selected handlers check roles, membership, or pending state.
  2. Application stateRecord & queue the workA request is stored in MongoDB and presented to staff as a work card.
  3. Human decisionReview & fulfillStaff approve applicable requests and carry out the in-game fulfillment.
  4. CompletionUpdate & notifyRecord completion, refresh the queue, disable completed controls, and notify the requester.
Supporting integrations

External trackers → operational displaysConfigured source filtering, parsed telemetry, server status, and scheduled updates.

Google Sheets ↔ application recordsService-account import/export utilities and safeguards for manually corrected data.

A simplified view of the documented request lifecycle. Authorization is distributed across selected handlers; not every workflow follows an identical sequence.

The operational problem

Membership approvals, access requests, and resource fulfillment involved recurring coordination between users and staff. Free-form intake made the status of outstanding work harder to follow. I replaced that intake with guided inputs, persistent requests, staff-facing queues, and completion notifications.

The system needed to connect several kinds of information: platform identity, configured community roles, request details, stored records, and external server telemetry. Each integration had a different purpose and needed to be handled within its own trust boundary.

What I built

Identity and access workflows

The platform supplied an authenticated actor and interaction context. Selected commands checked configured role groups before modifying membership state. Cross-community onboarding checked primary-community membership and the required role before assigning secondary roles.

Requests, staff queues, and notifications

Commands, buttons, and forms routed interactions to the relevant application handler. Applicable request workflows checked for an existing pending request, created an incomplete MongoDB record, and published a staff work card. After fulfillment, the application updated completion state and coordinated the queue and requester notifications.

Telemetry and external services

Configured tracker messages passed through sender and channel matching before being parsed into operational state. A public server feed supplied population and metadata for scheduled displays. External database reads supported player analytics and leaderboard aggregation.

Data and administrative integrations

MongoDB held member approvals, requests, and completion state. Google Sheets connected through a service account and import/export utilities. Local JSON stored tasks, timers, and snapshots; in-memory maps and sets held temporary state.

Engineering decisions and safeguards

I separated workflow coordination from human fulfillment. The application made work visible and tracked its state, while staff retained responsibility for decisions that required their review.

Typed command options, required form inputs, duplicate-pending-request checks, private responses in selected workflows, and configured telemetry-source matching supported more predictable operations. Persisted reminders restored scheduled work after application restarts.

Character-record removals used a process-local mutex to serialize a helper’s read/modify/write path. Records included a lastModified marker, and spreadsheet imports skipped retained records already marked as manually corrected. RAW spreadsheet writes helped preserve the intended input values.

These safeguards addressed specific failure paths. The mutex was not a distributed lock, and the local JSON, maps, sets, and temporary state were process-scoped. Handler-level role checks also should not be read as evidence of a single, universal authorization layer.

Explore the technical implementation

The detailed diagram below connects the access workflow with telemetry, storage, and integrations. Open it to inspect the architecture, then select a node for an illustrative code example.

Architecture & illustrative codeAccess workflows, telemetry, storage, and integration boundaries
03

Technical architecture & data flow

Identity context moves through event routing, handler-specific checks, persistent workflow state, and staff-facing output. Select any node to explore an illustrative proof of concept.

Logical architecture Logical model of the project workflows
100%Scroll to explore · Select a node for a proof of concept
Legioner Solutions architecture and data flowAccess lane: users and staff pass through platform identity, Node.js event routing, handler-specific checks, access workflows, MongoDB persistence, and operational output. A separate telemetry lane filters external tracker messages and combines operational state, scheduled server refreshes, and player analytics with staff-facing output. Local state is process-scoped; Google Sheets is a service-account integration. Select any node to open an illustrative proof-of-concept example.ACCESS & WORKFLOWSTELEMETRY & INTEGRATIONSUsers & staffRequests and approvalsIdentity gatewayPlatform-authenticated actorand interaction contextNode.js event routerdiscord.js commands, buttons,forms and eventsHandler-specific checksRole / membership checksPending-request stateAccess & task workflowsApprovals, role assignment,requests and remindersMongoDBMember approvals, requestsand completion stateOperational outputStaff queues, status cards,private replies and messagesUsers & staffReview, fulfillment andcompletion notificationsExternal tracker servicesGame-server telemetryvia configured messagesSource filteringConfigured sender / channelmatching and message parsingOperational stateParsed telemetry andalert-state handlingPublic server feedExternal population and server metadataScheduled refreshPopulation and status display utilitiesPlayer analyticsExternal database readsand leaderboard aggregationLocal & temporary stateJSON tasks, timers, snapshots;in-memory maps, sets and locksGoogle Sheets APIService-account integrationImport / export utilitiesSolid arrows: primary flow / operational data. Dashed arrows: supporting state and integration.
01

Telemetry & integrations

Configured tracker messages pass through sender and channel matching into parsed operational state. A public server feed supplies population and metadata for scheduled displays. External database reads support player analytics and leaderboard aggregation.

Google Sheets connects through a service account and import/export utilities. Local JSON stores tasks, timers, and snapshots; in-memory maps and sets hold temporary state.

Simplified logical architecture. Authorization checks are distributed across selected handlers. Local JSON, locks, and temporary state are process-scoped. External services supply identity and telemetry.

Results and how to read them

The application supported a community of more than 20,000 members. The reported reduction in manual administration was approximately 70% across automated activities. These figures describe community scale and a project-reported estimate; they are not independently benchmarked throughput, concurrency, or performance measurements.

The practical result was a more structured way to collect requests, track outstanding work, and communicate completion. The supporting project document explains the implementation context. The code examples on this page are independently authored illustrations, not production source or proof that every illustrated control was implemented.

What I would improve next

The next hardening priorities follow the points where permissions, persistent state, and external messages meet:

  • Consistent authorization: apply appropriate checks to every mutation.
  • Atomic request deduplication: prevent simultaneous requests from creating duplicate work.
  • Revision-checked writes: detect changes before replacing records.
  • Retry and reconciliation: recover when a database update succeeds but a notification fails.

What I took from the project

This work connected access management, backend application logic, persistence, integrations, and day-to-day operations. It reinforced the importance of making state transitions explicit: who requested an action, what checks applied, who fulfilled it, and whether completion was recorded and communicated.

Engineering takeaway: reliable automation needs clear ownership of decisions, durable workflow state, and a recovery path when connected systems disagree.

Technology and supporting material

Node.js · JavaScript · discord.js v14 · MongoDB · Google Sheets API · JSON persistence · async-mutex · Windows and server administration.

Read the supporting project document

Based on the supplied Legioner Solutions project document and resume. Implemented behavior and future hardening priorities are distinguished above. Homepage network activity is a separate visualization using simulated events.

Contact

Let’s talk.

For engineering opportunities and project conversations.

[email protected]

Start a conversation

Compose email
Legioner Solutions / Proof of concept

Illustrative pseudocode, not production source. Helpers and data are placeholders. Examples do not run here or establish that a control is implemented in the production system.