diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..406e819 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,17 @@ +# Use an official Python runtime as a parent image +FROM python:3.9-slim + +# Set the working directory +WORKDIR /app + +# Copy the application files +COPY app/ /app + +# Install dependencies +RUN pip install -r requirements.txt + +# Expose the port the app runs on +EXPOSE 5000 + +# Run the application +CMD ["python", "app.py"] diff --git a/app.zip b/app.zip new file mode 100644 index 0000000..e65a2d4 Binary files /dev/null and b/app.zip differ diff --git a/app/app.py b/app/app.py new file mode 100644 index 0000000..1666e04 --- /dev/null +++ b/app/app.py @@ -0,0 +1,42 @@ +from flask import Flask, render_template, send_from_directory + + +app = Flask(__name__, static_url_path='', static_folder='static') + +# Define individual routes for each file +@app.route('/static/Compialer.png') +def serve_compialer(): + return send_from_directory('static/images', 'Compialer.png') + +@app.route('/static/cpu-emulator.png') +def serve_cpu_emulator(): + return send_from_directory('static/images', 'cpu-emulator.png') + +@app.route('/static/dll-extractor.png') +def serve_dll_extractor(): + return send_from_directory('static/images', 'dll-extractor.png') + +@app.route('/static/game-engine.png') +def serve_game_engine(): + return send_from_directory('static/images', 'game-engine.png') + +@app.route('/static/gcml.png') +def serve_gcml(): + return send_from_directory('static/images', 'gcml.png') + +@app.route('/static/net-scanner.png') +def serve_net_scanner(): + return send_from_directory('static/images', 'net-scanner.png') + +@app.route('/static/wictra-website.png') +def serve_wictra_website(): + return send_from_directory('static/images', 'wictra-website.png') + + +@app.route('/') +def serve_index(): + return render_template('index.html') + + +if __name__ == '__main__': + app.run(host='0.0.0.0', port=80) diff --git a/images/Compialer.png b/app/static/images/Compialer.png similarity index 100% rename from images/Compialer.png rename to app/static/images/Compialer.png diff --git a/images/cpu-emulator.png b/app/static/images/cpu-emulator.png similarity index 100% rename from images/cpu-emulator.png rename to app/static/images/cpu-emulator.png diff --git a/images/dll-extractor.png b/app/static/images/dll-extractor.png similarity index 100% rename from images/dll-extractor.png rename to app/static/images/dll-extractor.png diff --git a/images/game-engine.png b/app/static/images/game-engine.png similarity index 100% rename from images/game-engine.png rename to app/static/images/game-engine.png diff --git a/images/gcml.png b/app/static/images/gcml.png similarity index 100% rename from images/gcml.png rename to app/static/images/gcml.png diff --git a/images/net-scanner.png b/app/static/images/net-scanner.png similarity index 100% rename from images/net-scanner.png rename to app/static/images/net-scanner.png diff --git a/images/wictra-website.png b/app/static/images/wictra-website.png similarity index 100% rename from images/wictra-website.png rename to app/static/images/wictra-website.png diff --git a/index.html b/app/templates/index.html similarity index 65% rename from index.html rename to app/templates/index.html index aecae09..fe97b2a 100644 --- a/index.html +++ b/app/templates/index.html @@ -1,325 +1,455 @@ - - - - - - Spencer Conlon | Portfolio - - - - - - -
-
-

Spencer Conlon

-

Innovative Software Developer & Systems Administrator

-
- - - - -
-

Projects

-
-
-
-
-

Custom 3D Game Engine

-

Technologies: C++, Lua

-

Developed a high-performance 3D game engine with a Lua scripting API for customizable and efficient game development.

-

View Source Code

-
-
-
-
-
- -

C Compiler and ASM Assembler

-

Technologies: C, ASM

-

Created a custom compiler and assembler for low-level software development and optimization.

-

View Source Code

-
-
-
-
-
-

Network Crawler

-

Technologies: Python

-

Built a tool to scan local networks, identify devices, gather details, and log in to analyze running software.

-

View Source Code

-
-
-
-
-
-

WICTRA Website

-

Technologies: HTML, CSS, JavaScript, PHP

-

- Developed a secure website featuring advanced bot protection, a user management system, forms, ticketing system, - jobs board, and content library. -

-

View Source Code

-
-
-
-
-
-

Dynamic DLL Tool

-

Technologies: C++

-

Created a utility to identify and package required DLLs for an executable, simplifying application distribution.

-

View Source Code

-
-
-
-
-
-

GCML: C/C++ Utility Macros

-

Technologies: C, C++

-

A comprehensive library of macros for debugging, logging, memory management, and bit manipulation, enhancing workflow efficiency.

-

View Source Code

-
-
-
-
- -
-

Contact

-

Email: spencer.conlon3@gmail.com

-

Phone: +1 (920) 891-6655

-

Location: Ripon, WI

-
- Git - LinkedIn - Resume -
-
- - - - - - + + + + + + Spencer Conlon | Portfolio + + + + + + +
+
+

Spencer Conlon

+

Innovative Software Developer & Systems Administrator

+
+ + + + + + + +
+

Projects

+
+
+
+
+

Custom 3D Game Engine

+

Technologies: C++, Lua

+

Developed a high-performance 3D game engine with a Lua scripting API for customizable and efficient game development.

+

View Source Code

+
+
+
+
+
+ +

C Compiler and ASM Assembler

+

Technologies: C, ASM

+

Created a custom compiler and assembler for low-level software development and optimization.

+

View Source Code

+
+
+
+
+
+

Network Crawler

+

Technologies: Python

+

Built a tool to scan local networks, identify devices, gather details, and log in to analyze running software.

+

View Source Code

+
+
+
+
+
+

WICTRA Website

+

Technologies: HTML, CSS, JavaScript, PHP

+

+ Developed a secure website featuring advanced bot protection, a user management system, forms, ticketing system, + jobs board, and content library. +

+

View Source Code

+
+
+
+
+
+

Dynamic DLL Tool

+

Technologies: C++

+

Created a utility to identify and package required DLLs for an executable, simplifying application distribution.

+

View Source Code

+
+
+
+
+
+

GCML: C/C++ Utility Macros

+

Technologies: C, C++

+

A comprehensive library of macros for debugging, logging, memory management, and bit manipulation, enhancing workflow efficiency.

+

View Source Code

+
+
+
+
+ +
+

Resume

+
+
+

Spencer Conlon

+

Ripon, WI 54971 | +1 (920) 891-6655 | spencer.conlon3@gmail.com

+
+ +

+ Summary +

+

Innovative software developer and systems administrator with expertise in creating advanced tools, systems, and high-performance applications. Notable projects include a custom 3D game engine with a Lua scripting API, a C compiler, an ASM assembler, and a CPU emulator. Adept at building secure, scalable web solutions, designing efficient development tools, and solving complex technical challenges. Committed to delivering fast, optimized solutions and streamlining workflows.

+ +

+ Work Experience +

+
+
+ Developer/System Administrator | Wisconsin Cyber Threat Response Alliance (WICTRA) + 2023 – Present +
    +
  • Designed and developed a secure website with advanced bot protection, including CAPTCHA, 2FA, and JavaScript challenges.
  • +
  • Built a comprehensive forms system, user management system, ticketing system, jobs board, and content library.
  • +
  • Developed a network crawling tool to identify devices and gather detailed information for analysis.
  • +
+
+
+ Mechanic | PC Power Center – Ripon, WI + 2020 – Present +
    +
  • Assisted with mechanical repairs and maintenance tasks, enhancing problem-solving skills.
  • +
+
+
+ +

+ Education +

+

Junior High School Education | Ripon High School – Ripon, WI
September 2022 – Present

+ +

+ Key Projects +

+ + +

+ Skills +

+ + +

+ Awards +

+

BSA Arrow of Light | 2019

+ +

+ Certifications and Licenses +

+

Driver’s License

+
+ + +
+ + + + +
+

Contact

+

Email: spencer.conlon3@gmail.com

+

Phone: +1 (920) 891-6655

+

Location: Ripon, WI

+
+ Git + LinkedIn + Resume +
+
+ + + + + + diff --git a/requirements.txt b/requirements.txt new file mode 100644 index 0000000..7e10602 --- /dev/null +++ b/requirements.txt @@ -0,0 +1 @@ +flask