Skip to content

Monorepo for personal website app and supporting app projects.

License

Notifications You must be signed in to change notification settings

MarkPThomas/mark.ly

Repository files navigation

mark.ly

Personal website app and supporting app projects, with a focus on GIS, outdoor activities & trip reports.

My main Mark.ly project that contains these apps is in a multi-project monorepo structure, with the idea that I may build it out as a monolith-to-microservices hybrid as the repo transitions to a hybrid model.

See my Wiki for more information.

GIS.ly

🎉🎉🎉 This is currently my most mature project within this repo 🎉🎉🎉
See it here.

Projects

The following is a list of active projects in this repo.

These are under active development. The apps projects are the front-end development, possibly combined with services & libraries packages from this repo. Testing here tends to be front-end, integration testing and end-to-end testing.

App for GIS-oriented work, such as Track cleaning, route planning.

App for planning trips using weather & air quality data.

App for climbing group rack logistics, especially for gear-heavy destinations like Indian Creek.

Code that can be used across multiple apps. There is no front-end code or databases in these projects. Most, if not all, can be run in the browser as well as on the server. These libraries tend to have most of the logic for technical matters, as well as more full unit-testing coverage.

Contains code used across multiple projects. Sometimes code may be replicated, but this code is worth being a shared dependency.

Contains methods & objects for mathematical operations, such as vector math, point/curve intersections, coordinate conversions, 2D interpolations, cube root derivations, parametric equations, and more!
In progress, being ported from C#.

Need more out of a shapes library than basic lines, curves, & bounding box collisions for video games? This library allows deep and complex modeling of polylines, polygons, and more, with an ability to get detailed shape properties and segment information, such as normal vectors.
Geometry-C# to be merged once C# porting is complete.

JavaScript lacks many useful data structures, such as Linked Lists, Heaps, and LRUs. This library implements such structures, including making them easily extendable for those that want further customization.

Conveniently converts between different units. Beginning with unit primitives, it builds on those to convert between more complex units, such as speed, stress, etc. The libary is also set of for users to extend it in order to add support for units conversions not yet added.

The library also handles formatting with unit conversions, such as displaying Latitude/Longitude coordinates, recorded as decimal degrees, as degrees/minutes/seconds, e.g. 77.65367° = 77°39'13.2''W

A wrapper library that makes it easy to store, access, manipulate, and update GeoJSON objects as immutable entities. It also has convenience features, such as tolerance limits & validations for Geometries.

A one-stop shop for GIS work, such as generating layers for Leaflet, CRUD and auto-cleaning features for routes & tracks. It is made to be extensible, so you can derive your own custom objects and methods of manipulating & cleaning them.

The history library contains data structures with which one can undo or redo certain actions in a program.

Services

No packages are complete yet, but this directory basically contains packages that have a database & an API. There may be other logic handling behavior between the two, although such logic should be kept to a minimum. More extensive logic can be found in the libraries packages that may be used here. Testing here tends to be integration testing.

Misc Projects

These aren't likely to be of interest beyond co-collaborators.

Template Projects

To assist in creating new projects or standardizing existing ones, I am fleshing out some 'Hello World' template projects.

_-ly (to be removed)

Apps (TBD)

Basically placeholders for now, within the apps directory. These are set aside for future development. They may be further split apart or merged to existing projects.

Service for source of truth data shared between multiple apps.

Service for handling photos, videos, references, etc. with CRUD as well as serving as a data source for other apps.

App for CRUDing trip reports/blogs.

Web scrapers for pulling/pushing data between Mark.ly apps & other websites.

App for planning trips.

Climbing-focused app.

Releases

No releases published

Packages

No packages published

Languages