Skip to content
/ blog Public

Personal portfolio, blog, and virtual sandbox of @montymi πŸ› οΈ

License

Notifications You must be signed in to change notification settings

montymi/blog

Repository files navigation

Contributors Forks Stargazers Issues GPL License


My Personal Sandbox on the Web

Analyses E2E Tests

Created by: Michael Montanaro

View Demo Β· Report Bug Β· Request Feature

Table of Contents
  1. About The Project
  2. Getting Started
  3. Usage
  4. Structure
  5. Tasks
  6. Contributing
  7. License
  8. Contact
  9. Acknowledgments

About The Project

"My Sandbox on the Web" is a personal portfolio that brings together my work as a software developer and academic. It serves as a central hub for showcasing my projects, research, and other contributions throughout my career.

This repository includes highlights of my software development journey, from personal projects to larger initiatives, as well as academic papers and research that have informed my approach to problem-solving and technology.

The goal is simple: to document and share my progress while providing a snapshot of my skills and experiences in one place. Whether you're here to explore my software projects or academic work, I hope you find something of interest.

Let me know if you'd like any further tweaks!


Built With

React TypeScript Vite PWA Recoil React Router MUI Vercel Three.js

(back to top)

Getting Started

For interacting with the demo: Check out the website!

For interacting with the code:

  1. Clone and navigate into the repo with:
git clone https://github.com/montymi/blog.git
cd blog
  1. Install dependencies
npm install
  1. Run development server for testing
npm run dev
  1. Build app for production server
npm run build

(back to top)

Usage

"My Sandbox on the Web" is divided into three main sections: Discography, Library, and Activity, each offering a unique way to explore my journey as a developer and academic.

Discography πŸŽ™οΈ

The Discography takes you on an audio-driven walkthrough of my projects, styled like a musical catalog. Each entry is crafted to give you deeper insights into the story behind the work:

  • Singles: Bite-sized projects or experiments that showcase quick ideas or concepts.
  • Episodes: Medium-scale projects, often part of a series, reflecting a deeper dive into specific topics.
  • Albums: Comprehensive, larger-scale projects that represent significant milestones in my career.

Library πŸ“š

The Library serves as a repository of my academic work and technical writing, including:

  • Research papers and publications, complete with summaries and external links.
  • Documentation and guides related to tools, frameworks, or methodologies I’ve explored.
  • Notes and reflections that capture the thinking behind my work.
  • It’s the ideal place for a more in-depth look at my technical expertise and academic contributions.

Activity πŸ”

The Activity section is a live feed of what I’m currently working on, experimenting with, or learning about. Here, you’ll find:

  • Updates on ongoing projects and experiments.
  • Prototypes and beta versions of ideas in progress.
  • Personal insights and reflections about my process and challenges.
  • This section keeps things fresh and offers a behind-the-scenes look at my development as a creator and researcher.

What's Next?

  • Listen: Start with the Discography for an engaging overview of my work, guided by audio storytelling.
  • Explore: Dive into the Library for a detailed understanding of my academic and technical background.
  • Follow: Check the Activity feed for the latest updates and ideas I’m exploring.

(back to top)

Structure

src
β”œβ”€β”€ components
β”‚   β”œβ”€β”€ Loading
β”‚   └── Meta
β”œβ”€β”€ config
β”‚   β”œβ”€β”€ index.ts
β”‚   β”œβ”€β”€ it-jokes.ts
β”‚   └── types.ts
β”œβ”€β”€ error-handling
β”‚   β”œβ”€β”€ fallbacks
β”‚   └── index.tsx
β”œβ”€β”€ hooks
β”‚   β”œβ”€β”€ useOrientation.ts
β”‚   └── useServiceWorkerNotifications.tsx
β”œβ”€β”€ pages
β”‚   β”œβ”€β”€ Activity
β”‚   β”œβ”€β”€ Discography
β”‚   β”œβ”€β”€ Library
β”‚   β”œβ”€β”€ NotFound
β”‚   └── Welcome
β”œβ”€β”€ routes
β”‚   β”œβ”€β”€ Pages
β”‚   β”œβ”€β”€ index.ts
β”‚   └── types.ts
β”œβ”€β”€ sections
β”‚   β”œβ”€β”€ Blog
β”‚   β”œβ”€β”€ Header
β”‚   β”œβ”€β”€ HotKeys
β”‚   β”œβ”€β”€ Notifications
β”‚   β”œβ”€β”€ Sidebar
β”‚   └── SW
β”œβ”€β”€ store
β”‚   β”œβ”€β”€ hotkeys
β”‚   β”œβ”€β”€ notifications
β”‚   β”œβ”€β”€ sidebar
β”‚   └── theme
β”œβ”€β”€ theme
β”‚   β”œβ”€β”€ Provider.tsx
β”‚   β”œβ”€β”€ themes.ts
β”‚   └── types.ts
β”œβ”€β”€ utils
β”‚   β”œβ”€β”€ insertIf
β”‚   β”œβ”€β”€ loader
β”‚   β”œβ”€β”€ is-mobile.ts
β”‚   β”œβ”€β”€ reset-app.ts
β”‚   β”œβ”€β”€ sleep.ts
β”‚   └── welcome.ts
β”œβ”€β”€ App.tsx
β”œβ”€β”€ main.tsx
└── Root.tsx

(back to top)

Tasks

  • Add a FastAPI for sending new blog posts
  • Continue adding projects to the Discography
  • Continue various paper and presentation transfer to the Library
  • Allow scrolling in the Welcome Page
  • Design and upload the Activity Page
  • Optimize PDF view on phone (using isMobile to show PDF as full-screen perhaps)
  • Create a more interactive 3D environment for the Vinyl object
  • Add audio files for all Published projects in the Discography

See the open issues for a full list of issues and proposed features.

(back to top)

Contributing

  1. Fork the Project
  2. Create your Feature Branch (git checkout -b feature/AmazingFeature)
  3. Commit your Changes (git commit -m 'Add some AmazingFeature')
  4. Push to the Branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

(back to top)

License

Distributed under the MIT License. See LICENSE.txt for more information.

Contact

LinkedIn Email Portfolio

Acknowledgments

  • react-pwa by @suren-atoyan for the amazing PWA template
  • ClearDocs for the high quality README template
  • Vercel for fast deployment and hosting

(back to top)