Skip to content
2MuchCoff33 edited this page Jan 9, 2026 · 6 revisions

Elvis Wiki

🟦 For Non-Technical Users: No coding required! 🟦

Welcome! This wiki is written in plain language for everyone. You don’t need to know how to code. Just follow the step-by-step guides, diagrams, and glossary to get started quickly.


How Elvis Works (At a Glance)

Procedure RunElvis()
    Begin
        Read seed URLs from srv/urls.txt
        For each URL:
            Fetch job listings
            Extract company and location using SED/AWK
        Deduplicate and validate results
        Write output to home/calllist.txt
        If --append-history is set:
            Append new companies to history
        End If
    End
End Procedure

Caption: At-a-glance flow showing the main pipeline from seeds to home/calllist.txt.

flowchart TD
    A[Start] --> B[Read seed URLs]
    B --> C[Fetch job listings]
    C --> D[Extract company/location]
    D --> E[Deduplicate & validate]
    E --> F[Write calllist.txt]
    F --> G{Append history?}
    G -- Yes --> H[Update company_history.txt]
    G -- No --> I[Done]
Loading

Pseudocode: Validating Output

Procedure ValidateCallList()
    Begin
        If home/calllist.txt does not exist or is empty then
            Log error and exit
        End If
        For each row in calllist.txt:
            Check format and required fields
            If invalid, log error
        End For
        If all rows valid then
            Print "Validation successful"
        Else
            Print "Validation failed"
        End If
    End
End Procedure

PlantUML: Elvis Main Pipeline

@startuml
actor User
User -> Elvis: Run elvis.sh
Elvis -> DataInput: Fetch & extract
DataInput -> Processor: Normalize & dedupe
Processor -> Validator: Validate output
Validator -> User: calllist.txt
@enduml


Welcome to the Elvis project wiki!

This wiki is your beginner-friendly guide to using, configuring, and understanding Elvis, the POSIX shell-based web scraper for Australian sales lead call lists.

📚 Wiki Navigation

🔗 Key Project Docs


Tip: All wiki pages are written for non-technical users. If you’re new, start with the Tutorials!


Documentation Standards

  • Pseudocode (PDL): For any procedural or algorithmic explanation, include a short PDL-style pseudocode block immediately after the explanatory paragraph. Follow Cal Poly PDL Standard.
  • Diagrams: Use PlantUML for UML-style diagrams (class, sequence) and Mermaid for flowcharts. Embed diagrams in fenced code blocks (plantuml / mermaid).
  • Tone & mobile-first: Keep language simple and accessible to non-technical readers; prefer short paragraphs and visuals to explain steps.

Use the navigation above to get started!

Clone this wiki locally