You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
If you don't already know, camply is an open-source Python
project that I created a little while ago that helps people to find and snag last minute
cancellations at campgrounds all around the USA.
I got the idea for camply when my partner and I took a road trip last summer. When we started planning
campgrounds to stay at inside of National Parks during our trip, we quickly discovered that
campsites at busy destinations like Yellowstone and Glacier are a hot commodity and totally booked
out. After playing around in Chrome Developer tools
on https://recreation.gov I realized that the APIs powering these websites
can be used to proactively search for new availabilities to open up.
Basically, camply works like this:
Install camply.
pip install camply
You get the ID numbers of your favorite, popular campground / recreation area using https://recreation.gov (you can do this with the camply CLI too,
try camply --help on your commandline).
You use the camply CLI to search for a reservation to open up. This is pretty common on
recreation.gov since their cancellation policy is generous and cheap. Check out the below command
to search for campsites on weekends
at Yosemite National Park (a rare find for
certain coveted campgrounds).
camply runs a Python process that searches for new cancellations and sends you a push
notification on your phone once something becomes available.
You click the link on the notification and scramble to book the campsite before anybody else
does.
Boom! You've just booked yourself a hard to find campsite. That's basically it. camply supports
different notifications through email, Telegram, Pushover, and more. It also works at campgrounds in
Yellowstone National Park that don't use recreation.gov.
camply been one of my favorite side projects to work on and the major part of that enjoyment is
because people out there are actually using it to find spots (almost 200 Stargazers on GitHub as of
writing this 😍). As camply has been getting more popular the feature requests have begun to come
in. Where I don't have time to work on those features, camply could use some architecture
simplification to empower more open source contributors to develop them instead.
As these new projects start to pile up, I'm beginning to ask myself: "does camply need a large
overhaul and refactor to best support this?" If so, what's the best way to do that and what
functionality is the most important? My end goal is a camply version 1.0.0 but for now I'm trying
to understand what to prioritize and how to make camply the best possible Python application it can
be (see below for Feature Ideas and Tech Debt).
If you have any feature suggestions, thoughts, architecture recommendations, or interest in
contributing to camply please let me know. Getting to connect with open source contributors has been
the best part of building this and has made me a better developer in the process (the camping has
been great too 🏕).
-- jf
P.S. If you're interested in working on a spin-off of camply that finds and reserves last minute
golfing tee times at golf courses around the world (including all the public Golf courses here in
Denver, CO), let's chat. I've got a Proof of Concept project that requires front end Python
skills and I'm looking for partners to work with on it.
defreintroduce_myself(name: str) ->str:
""" Go away for awhile before posting again """intro= (f"Hey everyone, I'm {name}. ""I hope to have some more to say soon.")
print(intro)
returnintroif__name__=="__main__":
reintroduce_myself(name="juftin")
Camply Feature Ideas and Tech Debt
Support multiple, simultaneous searches in the same process
This one is a no-brainer. People want to search for campsites that can fit their RV (or
whatever equipment they might have). camply needs to be able to filter results based on a
campsite's attributes and allowed equipment.
There have been a couple of requests for adding new Campsite providers (outside of Recreation.gov
and Yellowstone). There is
currently is an established pattern, including AbstractBaseClasses, to implement a new
Campsite Booking Provider - but it's admittedly clunky and not super intuitive for new
contributors.
This would be a tough, yet powerful feature to implement - it uses completely different
endpoints and logic from regular campgrounds
Search for specific campsites inside of campgrounds
#51 Done! This was a simple, but rewarding
feature to implement. People can now search for their favorite campsites in their local
campground
Persisted data stores (like a SQLite database) to store data between searches
Currently, each new camply search stores all of its data in-memory. Persisting data between
searches could enable more powerful searching
Webserver UI
This might be fun to build if camply is to ever become useful to a non-technical audience.
Being able to configure searches via a WebUI would be very useful
Managed Online Service for Hosted Searches
I'm not sure if this is feasible. I'm not interested in making money with camply, but I'm also
not interested in losing money. Hosting people's searches on a webiste would be great, but
possibly costly and require more time involved than I have to provide.
reacted with thumbs up emoji reacted with thumbs down emoji reacted with laugh emoji reacted with hooray emoji reacted with confused emoji reacted with heart emoji reacted with rocket emoji reacted with eyes emoji
-
See the Original Post (and forgive the weird formatting here)
If you don't already know, camply is an open-source Python
project that I created a little while ago that helps people to find and snag last minute
cancellations at campgrounds all around the USA.
I got the idea for camply when my partner and I took a road trip last summer. When we started planning
campgrounds to stay at inside of National Parks during our trip, we quickly discovered that
campsites at busy destinations like Yellowstone and Glacier are a hot commodity and totally booked
out. After playing around in Chrome Developer tools
on https://recreation.gov I realized that the APIs powering these websites
can be used to proactively search for new availabilities to open up.
Basically, camply works like this:
pip install camply
You get the ID numbers of your favorite, popular campground / recreation area using
https://recreation.gov (you can do this with the camply CLI too,
try
camply --help
on your commandline).You use the camply CLI to search for a reservation to open up. This is pretty common on
recreation.gov since their cancellation policy is generous and cheap. Check out the below command
to search for campsites on weekends
at Yosemite National Park (a rare find for
certain coveted campgrounds).
camply runs a Python process that searches for new cancellations and sends you a push
notification on your phone once something becomes available.
You click the link on the notification and scramble to book the campsite before anybody else
does.
Boom! You've just booked yourself a hard to find campsite. That's basically it. camply supports
different notifications through email, Telegram, Pushover, and more. It also works at campgrounds in
Yellowstone National Park that don't use recreation.gov.
camply been one of my favorite side projects to work on and the major part of that enjoyment is
because people out there are actually using it to find spots (almost 200 Stargazers on GitHub as of
writing this 😍). As camply has been getting more popular the feature requests have begun to come
in. Where I don't have time to work on those features, camply could use some architecture
simplification to empower more open source contributors to develop them instead.
As these new projects start to pile up, I'm beginning to ask myself: "does camply need a large
overhaul and refactor to best support this?" If so, what's the best way to do that and what
functionality is the most important? My end goal is a camply version
1.0.0
but for now I'm tryingto understand what to prioritize and how to make camply the best possible Python application it can
be (see below for Feature Ideas and Tech Debt).
If you have any feature suggestions, thoughts, architecture recommendations, or interest in
contributing to camply please let me know. Getting to connect with open source contributors has been
the best part of building this and has made me a better developer in the process (the camping has
been great too 🏕).
-- jf
P.S. If you're interested in working on a spin-off of camply that finds and reserves last minute
golfing tee times at golf courses around the world (including all the public Golf courses here in
Denver, CO), let's chat. I've got a Proof of Concept project that requires front end Python
skills and I'm looking for partners to work with on it.
Camply Feature Ideas and Tech Debt
and #76
run multiple camply docker containers in the background.
and #75
whatever equipment they might have). camply needs to be able to filter results based on a
campsite's attributes and allowed equipment.
and #40
Recreation.gov
and Yellowstone). There is
currently is an established pattern, including AbstractBaseClasses, to implement a new
Campsite Booking Provider - but it's admittedly clunky and not super intuitive for new
contributors.
endpoints and logic from regular campgrounds
feature to implement. People can now search for their favorite campsites in their local
campground
searches could enable more powerful searching
Being able to configure searches via a WebUI would be very useful
not interested in losing money. Hosting people's searches on a webiste would be great, but
possibly costly and require more time involved than I have to provide.
Beta Was this translation helpful? Give feedback.
All reactions