SHAYNAH OS

Loading desktop...

Hi, I'm Shaynah.

I build automation systems, internal tools, and interactive experiences. Tap an app to explore.

README

Hi, I'm Shaynah.

I'm an Atlanta-based automation developer who builds Python tools and workflow systems for repetitive, error-prone business processes.

My background in game design shaped how I think about systems, logic, interaction, feedback, and edge cases. I bring that same mindset to automation: understanding how work actually happens, turning business rules into reliable workflows, and building tools people can confidently use.

Explore the desktop to see automation systems, interactive demos, and a few things I built because I thought they'd be fun. Tap around to see automation systems, interactive demos, and a few things I built because I thought they'd be fun.

Start here

Employer examples use recreated sample data to protect company and customer information.

Label Proof Automation System

The Workflow

Customers send requests for product labels through a shared inbox. Each request includes the exact text they want printed on the label, usually inside an Excel, PDF, or Word (.docx) attachment. Before production can begin, that information has to be turned into a correctly formatted label proof and sent back for customer approval.

Before the Automation

Before I automated the workflow, someone had to open the attachment, manually transfer the requested text into BarTender, format the label, capture an image of the finished proof, draft the response email, and keep track of which requests had already been handled.

I first documented the process as a training guide after new employees struggled with the same workflow. Once the process was clearly mapped out, I realized most of the repetitive work could be automated.

The Problem

The process was repetitive, interrupted other work, and depended on manually transferring customer-provided text without changing it. A typo, missing line, altered lot number, or formatting mistake could create an incorrect proof that still looked finished enough to send.

How the Automation Works

  1. Watches the shared Outlook inbox through Microsoft Graph
  2. Detects new label requests and reads Excel, PDF, or Word (.docx) attachments
  3. Extracts the customer-provided label text
  4. Formats the text for the standard 3×2 label while preserving the original content
  5. Runs validation and safeguard checks before creating anything customer-facing
  6. Opens BarTender and generates the formatted label proof
  7. Captures the finished proof as an image
  8. Creates a draft reply in the shared mailbox with the proof included
  9. Tags the original request with a queue number and the SEND PROOF category, and keeps it pinned in Outlook
  10. Leaves the final visual review and send decision with an employee
Safeguards

Every request follows the same validation path. If a check fails, the workflow routes it to a person instead of continuing automatically.

  1. Only valid requests enter the workflow

    A request has to come from the approved customer, arrive after go-live and look like a label request. Supported Excel, PDF, and modern Word (.docx) files continue through validation.

    Routed to a person (Manual Review)
  2. The text has to match

    Line breaks can change so the text fits the label. The words and numbers must still match the customer's file exactly.

    Routed to a person
  3. Every attachment passes first

    All checks run before BarTender opens or a draft exists. If one attachment in an email fails, the whole email stops.

    Routed to a person
  4. Failed attempts clean up partial output

    A failed attempt removes its own files and any partial draft, then retries up to three times.

    Routed to a person
  5. A person sends it

    The automation leaves a prepared Reply All draft and the saved label files. An employee checks the proof and clicks Send. Printing waits for the customer's approval.

Running the whole time: the automation keeps its place in the inbox across restarts, and holds that place while any request is still retrying, so each email gets handled.

Edge cases
  • Legacy .doc or .xls files- Manual Review
  • Linked or cloud attachments- Manual Review
  • Ship-To mixed in with Bill-To or notes- Reads only the Ship-To section
  • Missing description or label size- Stops and routes to a person
  • Nonstandard label sizes- Kept off the standard 3×2 path
  • Several attachments in one email- One queue number, files numbered .1, .2
  • A retry that finds an older draft- Deletes it so only one proof exists
  • Microsoft rate limits or outages- Waits as instructed, then retries
  • Expired mailbox sync- Re-checks from the last sync with a 10-minute overlap
  • Requests after 3 PM on weekdays- Late notice based on when the email arrived
  • A request that already finished- Skipped, so it's handled once
The Output

CHICKEN THIGHS, BONELESS

ITEM: 48271

LOT: 3289230

NET WT: 40 LB

KEEP FROZEN

STORE AT 0°F OR BELOW

To orders@sample-customer.com

Subject RE: Label request, PO 4471

Hi Dana,
Please approve the proof.
[proof image shown here]

The generated proof and prepared Outlook draft, recreated with sample data.

Results

Proof response time
BeforeUp to 2 hours
AfterUnder 1 minute

Label requests no longer get buried in the shared inbox, and employees no longer have to stop their current work to build proofs manually. The remaining human workflow is essentially two clicks: open the prepared draft, visually verify the proof, then click Send.

Built with Python, Microsoft Graph, SQLite, pdfplumber, openpyxl, and BarTender. 36 automated tests run on every push. Final sending remains human-controlled.

View the Code on GitHubPortfolio-safe reconstruction with fictional data, a runnable demo, sample files, and tests.

Billing Reconciliation Automation

The Workflow

Each weekly billing cycle starts with two QuickBooks exports that describe different parts of the same picture: invoice detail and current open balances. They have to agree before customer-facing billing reports can be created.

Before the Automation

A coworker told me he was overloaded with work, including this weekly billing process. I asked him to show me how he did it so I could understand the workflow and see what could be improved. Over a few Teams meetings, I watched the process, documented it as a training guide, and mapped out the repetitive steps.

The manual process was entirely click-driven in QuickBooks: open each unpaid invoice one at a time to mark it for printing, re-select every invoice in Print Forms, save the batch as a PDF, run the Open Balance report, then write the email by hand. It took about two hours a week. The only check was a final review before sending, so catching a wrong charge, missing tracking number, or omitted invoice depended entirely on someone noticing it.

As I worked through the automation, I realized the process worked best with a person still in it. The automation took over the repetitive work, while review, judgment calls, and the final send stayed with him. His weekly billing went from about two hours to 10–15 minutes.

The Problem

The workflow combines financial data with business rules. A report can look polished and still be wrong if one rate, balance, address, or invoice status is off, so the automation needed to reconcile the data before generating anything.

How the Automation Works

The desktop tool loads both exports, reconciles invoice detail against open balances, applies billing rules, surfaces exceptions, and generates the two customer PDFs only after the run passes validation.

Safeguards
Billing rule failures stop the run

Wrong packing items, rates, amounts, billing periods, or totals that disagree prevent the PDFs from being generated.

Unrecognized addresses require review

A location the system has not seen before stays visible for a person to verify instead of being guessed.

Missing tracking and unexpected tax are flagged

The run can continue when appropriate, but the issue remains flagged so the reviewer knows exactly what needs attention.

Previously billed weeks require confirmation

Every run is recorded by billing week. Generating PDFs for a week that was already billed requires a person to confirm it first.

Billing run review3 invoices checked
Invoice 10482Packing $12.50 flatPass
Invoice 10483No tracking numberWarn
Invoice 10484Packing is $15.00, expected $12.50Stop
PDFs locked until 1 hard stop is fixed
How the checks show up after a run, recreated with sample data.
The Output
Both PDFs are generated only after the run passes validation. Shown here with fictional sample data.

Results

Weekly billing time
BeforeAbout 2 hours
After10–15 minutes

One guided run replaced the clicking, and it added checks the manual process never had. Every invoice is reconciled and validated before a PDF exists, so the reviewer only looks at what the system flags. The run ends with both PDFs and a prepared Outlook draft.

Built with Python and Tkinter. 15 automated regression tests run on every push. Final sending remains human-controlled.

View the Code on GitHubRunnable source with fictional QuickBooks exports, 15 regression tests, and sample PDFs.

Job Discovery & Matching System

The Problem

Job searching is mostly filtering. New listings appear constantly, the same role shows up on several boards, old posts stay up for weeks, and plenty of listings miss on location, pay, or job type. Reading all of it by hand takes time, and it takes even longer when you're searching for more than one person.

I wanted a system that could turn that noise into a repeatable pipeline: collect fresh listings, apply a candidate's criteria, remove duplicates and obvious mismatches, score what remains, explain why a role fits, and deliver a smaller shortlist worth actually reviewing.

How It Works

  1. Pulls listings from selected job sources
  2. Loads a candidate profile with its own resume, target roles, exclusions, and location rules
  3. Filters by recency, role fit, location, and candidate-specific requirements
  4. Removes duplicate listings before delivery
  5. Scores promising matches and explains the strongest reasons they fit
  6. Sends the shortlist through Telegram

Example Output

STRONG MATCH · 86%

Instructional Designer

Willowbrook Learning Studio

📍 Remote, US

💰 $72,000-$82,000/yr

Why it fits

  • direct title match: instructional designer
  • training content development
  • e-learning and curriculum work
  • remote
  • full-time
  • pay matches target range
Source: SampleJobs10:24 AM
A Telegram match card recreated from the system's output.

Built for Different Candidates

Each candidate gets their own profile with target roles, exclusions, pay expectations, location rules, and how recent a listing has to be. Collection, filtering, deduplication, scoring, and delivery are shared, so adding another person means writing a new profile, not building another bot.

Personal project, actively developing the matching logic and delivery workflow.

AlignedFX

AlignedFX bull and bear logo

AlignedFX grew out of my own experience as a trader.

I spent a long time focused on strategy, setups, and execution, then realized that knowing what to do was only part of the problem. Mindset, discipline, fear, hesitation, overthinking, and the way money feels emotionally can all affect whether a trader follows a good plan in the first place.

I started building AlignedFX around that gap. It combines trading psychology, money mindset, personalized assessments, calculators, guided meditations, trader study music, and game-like learning experiences designed to help traders understand and work with the mental side of performance.

Building AlignedFX has challenged me to translate abstract concepts like patience, discipline, and positive self-talk into interactive tools, game mechanics, and personalized feedback. Through that process, I’ve learned to break complex ideas into functional systems, design meaningful user interactions, anticipate different outcomes, and refine features through testing and iteration. It’s brought together my background in game design, my interest in psychology, and my passion for building practical, engaging software.

Self Sabotage Slayer

Enter the Arena

Self Sabotage Slayer is a turn-based browser RPG I built to turn trading psychology into a playable challenge. Across 11 bosses inspired by real trading habits, players protect their Mental Equity by choosing when to execute, reset, wait, or take a risk.

Self Sabotage Slayer battle screen: stage 1 of 11 against the Comfort Zone King, with the Mental Equity bar, toolbelt, battle log, and the Execute, Reset, Wait, and Snipe buttons.
Stage 1 against the Comfort Zone King.
Play the GameRuns in your browser on desktop or phone.
Meet the 11 Bosses From the Comfort Zone King to the Account Assassin

The bosses follow a trader’s journey, beginning with habits like avoidance and hesitation and progressing toward challenges like greed and overconfidence that can affect even experienced traders.

  1. Comfort Zone Kingwhere it starts
  2. Paralysis Golem
  3. FOMO Phantom
  4. Doomscroll Demon
  5. Revenge Raptor
  6. Heartbreak Hedger
  7. Clarity Crusher
  8. Volatility Viper
  9. Greed Goblin
  10. Pride Pharaoh
  11. Account Assassinfinal boss

How It Plays

Execute

A reliable attack. Stick to the plan.

Reset

Restores Mental Equity, then needs a turn to recover. Step away before you tilt.

Wait

Hold for a turn and your next hit does double damage. Patience pays.

Snipe

A risky shot that can land big or miss completely.

Mental Equity is your health, and the market changes as you progress: bullish, choppy, bearish, and finally a flash crash. Each phase changes the rules of combat, so you'll need to manage your tools, upgrades, and timing carefully to survive all 11 stages.

VR Thriller

Watch the Experience

VR Thriller is a 360° virtual reality experience I created for my virtual production pipeline course at Georgia State University. Inspired by Michael Jackson’s Thriller, it places viewers inside a graveyard surrounded by dancing zombies.

Two zombies mid-dance in a moonlit graveyard Watch in the YouTube app
Drag the video to look around the graveyard.
For the best 360° experience, open in the YouTube app and move your phone to explore the graveyard.
Open in YouTubeWatch it full screen.

How I Built It

  • Designed the zombie cast in Character Creator.
  • Cleaned up dance motion files and applied them to the characters using iClone and 3DXchange.
  • Captured a friend’s performance in a motion-capture suit for the zombie dancing on the tombstone.
  • Built the graveyard environment using SketchUp and Blender 2.8.
  • Rendered the finished scene as a 360° video for desktop, mobile, and VR headsets.

A tribute to Michael Jackson’s Thriller. Music and choreography belong to their original owners.

View on ArtStationStills and notes from the project.

about me

Shaynah wearing her graduation cap and blue stole beside a panther statue

Games were one of the first places I learned to love systems.

They were a way to bond with my family, a place I could disappear into for a while, and eventually something I wanted to learn how to create for other people.

I earned my bachelor's degree with a major in Game Design & Development and explored game systems, interactive design, 3D modeling, and immersive experiences. What kept pulling me in was the structure underneath the experience: logic, states, feedback, player behavior, edge cases, and the way one rule can change everything around it.

Later, I joined a company that provides labeling, coding, and packaging solutions in a technical and administrative role, which put me close to the daily order, billing, and website work. I kept noticing repetitive processes that could work better, so I started building tools for them.

One automation turned into another, and I realized I liked the same part of this work that I had always liked in games: understanding the system, figuring out how people move through it, finding where it breaks down, and building a better experience on the other side.

I still bring the creative side with me. I enjoy gamifying ideas, creating interfaces with personality, and thinking about how technology can feel more intuitive, immersive, and engaging instead of purely functional.

What ties it all together:

I like building things people actually interact with. Sometimes that is a game, sometimes it is a website, and sometimes it is a Python tool that saves someone from doing the same tedious task every Wednesday.

skills

Automation & AI

Data & Integrations

Process & Documentation

Web & Marketing

Game, 3D & Creative

Tools & Platforms

contact

Say Hi

Looking for an automation developer, want to talk about the portfolio, or just want to connect? Shoot me a message.

github.com/ShaynahCodes artstation.com/shaynahcodes

bug_bash.exe

Bug Bash

Release day is here, and the code is crawling with bugs!

Squash bugs+10 each. Keep a streak going to build a combo.
Protect working codeHit it by mistake and you lose 15.

You'll play three waves: Testing, Staging, then Production. Each wave is faster than the last.

Recycle Bin

8 object(s)

trophies

Nice Try

Try to empty the recycle bin

COMMON

Good Auditor

One invoice fails the vibe check.

RARE

Full Tour

Check out my automations!

RARE

Poke Around

Pip looks suspiciously tappable.

SECRET

Say Hi

The contact form is feeling ignored.

LEGENDARY

credits

All five unlocked. You found the whole OS.

PIP

You found everything. Thanks for exploring every corner. ♡

Designed & built by Shaynah

A portfolio OS powered by curiosity, persistence, and an unreasonable amount of tiny UI adjustments.

TROPHIES UNLOCKED (5/5)
Nice Try
Good Auditor
Full Tour
Poke Around
Say Hi