I AM LISTENING TO
|
WHAT I LIKE
  • English
  • German


BLOG FILTER



Completely redesigned the website after the acquisition through Kongskilde Industries. The website is multi-lingual, running in English and German at the moment. I also helped expand the download section to better filter by current and discontinued products.

Kongskilde is an industry leader in the design and manufacturing of custom pneumatic conveyor systems for both industrial and grain applications.” – Kongskilde Industries

MATHO Absaugtechnik GmbH is a leading manufacturer of granulators and waste extraction systems in the packaging, converting, and labels industry.” – Matho

readmore

Complete custom digital kiosk setup and template. Integration into the current e-commerce solution. Easy transfer of the cart via QR-Code to safely finalise the purchase on a mobile device. Extensive set of templates to provide customers the option to add their own ads.

This has been in development for multiple months and I am glad to see it live in retail stores.

There is a kiosk setup to promote the knifes from TYPEMYKNIFE or a complete separate solution to use for other retail locations and their specific requirements.


Your digital advertising platform on a 43 inch touch screen. Interactive customer communication 24/7 in your business premises. Remote controllable from outside.

Open your company digitally 24 hours a day. Also possible without an online shop. The core piece is a digital kiosk with a 43″ touch screen in 9 x 16* format. The kiosk is connected to your network and stands in an attractive advertising spot in your business premises.

You can use your homepage to present your company with a logo, image and text. You can also link to an external website of your choice using a QR code. If the device is not used by customers, the stele shows its configured advertising messages** in rotation. Customers can operate the device at any time using touch input.

At night or immediately after closing time, the stele can be used through the shop window using a mobile device as a remote control.

MONOLITH 4K – TYPEMYKNIFE®

readmore

Complete overhaul of the startpage and multiple subpages. I also integrated the digital kiosk solution into the overall setup and layout.

TYPEMYKNIFE® – allows you to laser engrave your knife using a unique 3D configurator.

Their shop provides a vast amount of knives from different known knife manufactures (Burgvogel, Chambriard, Claude Dozorme, DICK, Giesser, Güde …), while also offering their own (TYPEMYKNIFE® Messermanufaktur).

TYPEMYKNIFE® / Shop / About / Blog / Youtube

readmore

What are particle animations?

Particle network animations in JavaScript typically involve creating visual representations of particles (often small dots or shapes) that move around in a defined space, interacting with each other based on predefined rules or behaviors. These animations are commonly used for visual effects on websites, data visualization, or interactive demos.

Solutions

Particle network animations in JavaScript offer a visually appealing way to represent various phenomena or data in a dynamic and interactive manner on the web. There are multiple solutions out there to create a nice particle network animation in Javascript.

Depending on the amount of particles interacting, they will all spin up your fan at some point depending on your hardware ;) You can also use Three.js / D3.js / PixiJS or Anime.js to create it, but that might be an overkill.

These libraries offer different features and capabilities, so you can choose the one that best fits your project requirements and familiarity with the tools.

Lastest additions (2024 / 2023)

  1. Particles 3D – 3d Particle Animation JavaScript Framework. Create beautiful moving backgrounds using animated particles on a HTML canvas.
  2. tsParticles / Github

Some other solutions

  1. Particles.JS – Vincent Garreau / GitHub
    Particles.js is a lightweight JavaScript library for creating particle effects. It provides a simple way to generate customizable particle animations on HTML pages. You can control various parameters such as number of particles, size, color, speed, and more. (tsParticles is a direct / optimised replacement)
  2. ParticlePayground – Jonathan Nicol / GitHub
  3. Particler  – Adam Bereziuk / GitHub
  4. Particle Network – Ken Ankomah / GitHub
  5. CANVAS PARTICLES WEB MATRIX
  6. Particle Network Animations in JS – Alex Wendland
  7. Javascript Particles Animation – Roshin Jose
  8. Connected Particles – Mike Bostock
  9. Connected Particles – Jonathan
  10. Canvas Particle Animation – Julian Laval
  11. 3D Network Graph – Joe die Stefano

readmore

BOOKING SOLUTIONS 202x

This is my take on a subset of booking, appointment, PMS or reservation solutions for WordPress.

Update 02.04.2024
Moving down the rabbit hole again :)
Will be diving a bit deeper into some the solutions and their feature-sets. Might split this up into multiple posts :) Will see, which of the developers are interested in an open review or not.

Possible deep-dive reviews for this year:

  1. Crocoblocks / JETPlugins: Not sure yet.
  2. PluginHive: Not sure yet.
  3. MotoPress: Not sure yet.
  4. PinPoint: Not sure yet.
  5. YITH: Maybe.
  6. WooCommerce Booking: Will setup the plugin and look at this again, but pretty undecided right now. Had my problems with it in the past.
  7. VikWP: I might be looking at it a bit closer in the future, but currently not a right fit to compare, as its target audience is the single property owner. But I still think it belongs into the list ;)

Some rules … before I start!

There are so many booking / appointment solutions out there, that its really hard to decide, which solution is the right one for your specific project and needs.

I will only list those that fit my own internal criteria.
Not all of them will always match, but it should be as close as possible :)

  1. Its not just a cheap theme bundle or addon. There are 100s of solutions out there, that claim to be free and just sell / promote their PREMIUM themes with a nice little addon. Might be enough for you, but not for me ;)
  2. Has a solid standing in the community.
  3. Has been around longer than 6 months.
  4. Has a real set of developers behind it, that work on new features.
  5. Has a support or community forum, where actual help can be found.
  6. Has documentation for the future administrator of the plugin.
  7. Has documentation for developers, helping to make it work for their clients. Extendability is always a plus.
  8. Has good theme or framework support.
  9. Has a good feature to price ratio.
  10. Has multi-language support (WPML)
  11. Makes me want to use it myself or promote it to my clients.

Just to be clear, this is highly opinionated, as is every other list claiming to have the best available solutions for you ;)
But this is how I would approach it together with my clients!


Property Management System ( PMS )?

A Property Management System ( PMS ) or Hotel Operating System ( HOS ) is an overkill for most projects, but provides booking, reservations, appointment logic, logistics, accounting and many other features.

My main focus is not the PMS market, but its always nice to have the option to extend a setup in the future, if additional requirements come up.

SaaS ( Software as a Service)

This is about full WordPress solutions, but there are also solutions that integrate with WordPress, but are hosted externally.

Like Checkfront for example and their WordPress integration.
You pay a monthly fee, depending on your yearly requirements.

The problem with a SaaS, is that you are limited to their feature set. If you want to integrate your own features and develop a specific extension for them, it is not always possible.

Some provide API access for extendability, but extending upon that can be pricey. And often its hard to decide, which service will really stick around and not vanish at some point.

But they are a nice quick solution, to get you started.

Bundled Theme / Theme Framework / Your Own Theme

This is where many offers try to lure you in. They offer premium themes that look amazing with demo content, bundled with a basic addon that features common functionality for the hotel booking market.

Some are pretty basic, some of these addons go pretty far.

For a B&B or hotel owner, it is pretty difficult to decide, which is the right one to choose.

You just see pretty pictures, perfect matching text and a workflow of many things, that just seem to work.

But does it really work for your feature-set?
How good is the documentation for the booking addon?
Do they provide a community forum to help with adjustments?

If none of the above is satisfying, please RUN :)

Don’t waste your money and stay away from frustration!

Most of the booking solutions are based around WooCommerce and there are 1000s of themes that are compatible.

There is no reason to bundle theme and booking addons, unless you really have a feature-set, that perfectly matches and will not grow in the future!

Choose a theme that is well supported, uses the framework of your choice and liking OR find someone to build a unique theme for you.

OTA (Over-The-Air) Channel Manager

A Channel Manager is a module that allows you to connect & synchronize your OTA channels (such as Booking.com, AirBnB, Expedia, Hotels.com, HomeAway, Trip Advisor, etc.).

The goal is to have no overbooking, just one calendar to manage all reservations, rates & availability.

This is a big topic and complicated in many ways. Some solutions offer some kind of 1-way or 2-way sync via iCal.

You can also use external services like Syncbnb or OTA Sync. This alone is a rabbit-hole of its own :) Not going there yet …. But it is an important question, if you plan to offer your bookings externally and do not wish to sync availability / reservations manually.

Lets prepare some initial questions for you!

Before choosing anything you should really pinpoint your own requirements.

  1. What is my current budget? What I am willing to pay for updates or on a regular basis?
  2. When do I plan to start? (development timeframe)
  3. Which features do I need right now?
  4. Which features do I need in the coming 6 months?
  5. Which features are nice to have?
  6. Which features are a must-have?
  7. Will I do the required updating and support for the system myself?
  8. Do I want to be responsible for security and the handling of personal data?
  9. Will I use my own theme, a framework or premium theme?
  10. Do I require or need WooCommerce integrated?
  11. Do I need multi-language support ( WPML )?
  12. Do I need an OTA Channel Manager to sync with Booking.com or any other external channel?

MY CURRENT PICKS

This is a starting list of solutions, that I handpicked following the rules I set myself. This list might grow in the future, depending on additional plugins I discover.

I have a new WPML client, that is starting fresh and already leaned on a theme based solution. He has some project requirements, that already leave him stuck in certain areas.

That is why I decided to take a deeper look at things currently available. I have touched many of these before, but taking a fresh look at them ;)

I am not comparing features, just presenting those that are good candidates to build a great booking setup.

You will need to do a feature matrix for your project and see which areas are covered by each plugin. No way around that :)

portalZINE NMN | Development meets Creativity | hotel booking vik booking

#1 Vik Booking (E4J)

Certified booking system and PMS Plugin for Hotels, B&B, Villas and Apartments.

E4J started with Joomla CMS integrations and added WordPress in 2018.

From their website: “The project VikWP – VikWordPress.com was born in 2018, it’s a newly born project, but it has more experience than ever by background. The company E4J has been one of the leading extensions development companies for Joomla since 2009. That’s how we started to get known with our software. “

Not many websites talk about it, but it has an amazing feature-set at a pretty descent price for the Pro version.

This plugin has no WooCommerce support and relies solely on their own payment integrations. They offer full PCI-DSS compliance for their payment gateways.

They offer a free and pro version, with the free version already having a good set of features.

One of the biggest benefits of the Pro Version is the possible integration of the channel manager, which allows you to sync your bookings with other external services (booking.com, airbnb …)

And if PMS features are important to you, the Pro version is the right plugin for you.

The price can quickly accumulate, depending on the payment gateways needed, which is not so much different to WooCommerce ;)

You also have to calculate in the Channel Manager, if you want to sync with external service providers.

The plugins target audience is more single properties or appartment complexes.

To get you started

A Vik Theme – Plaza – LINK

Appointment Manager – LINK

Documentation – LINK

Frontend Demo – LINK

Admin Demo- LINK

Price Range

FREE (Limited Payment Gateways / No Channel Manager)

or

PRO – 140 EUR (≈ $165) + Channel Manager: 79 EUR (≈ $93)

What is missing?

A merged use of the booking plugin, appointment plugin, item rent plugin is not possible. There is no shared shopping basket.

portalZINE NMN | Development meets Creativity | hotel booking pinpoint

#2 Pinpoint – Booking System Pro ( Pinpoint World LLC )

Pinpoint Booking System comes with a clean interface, a multipurpose functionality and an amazing range of booking features.

Suitable for businesses such as hotel accommodation, guesthouses rentals, appointments, scheduling conferences, and meetings or rental businesses to simplify the booking process for their customers.

  • Booking calendar – Demo
  • Book days
  • Book hours/minutes
  • WooCommerce support
  • Multi-language support
  • Reservations
  • Booking rules
  • Discounts
  • Coupons & vouchers
  • iCal support for export & import
  • More here

To get you started

Documentation – LINK

Extensions – LINK

WooCommerce Support – LINK

Price Range

Booking: FREE or PRO – $70

What is missing?

Do your feature matrix!

portalZINE NMN | Development meets Creativity | hotel booking motopress

#3 MotoPress – Hotel Booking Plugin ( Jetimpex )

Motopress has been a go-to for many projects in the past. When you search for booking solutions, it will always come up.

“The MotoPress WordPress Hotel Booking plugin is an all-in-one property management suite for rental property websites. List unlimited accommodations and services, accept direct online reservations, synchronize all bookings across OTAs and more (no per-booking or per-property commission). This WordPress hotel booking plugin is perfect for running any hospitality business establishment regardless of the size, function or cost: a hotel, vacation rental, apartments agency, hostel and more.” – statement from their website.

  • Two-way auto-synchronization of iCal with external booking platforms to exchange booking calendar data and avoid overbooking.
  • Email notifications with booking details, booking confirmation / cancellation notes and other important messages for both admin and guests.
  • Reservation of an unlimited number of accommodations during one booking session.
  • Integration with the WooCommerce Payments add-on to get more payment gateways.
  • Categorization of your accommodations according to any parameters (e.g. location, price range, etc.), which enables an advanced search for them.
  • Creation of discount coupons with monetary value or percentage discount coupons.
  • Demo availability to test both the back-end management area and front-end performance.
  • Broad knowledge base with detailed and instructive video tutorials.

To get you started

Demo – LINK

Documentation – LINK

Forum – LINK

Addons – LINK

Price Range

Booking: PRO – $89

What is missing?

Do your feature matrix !

portalZINE NMN | Development meets Creativity | hotel booking pluginhive booking

#4 WooCommerce Bookings and Appointments ( PluginHive )

Another plugin that has been around for a long time and grown in popularity as well as features.

  • Offer Bookings in Minutes, Hours, Days or Months
  • Allow users to book Multiple Days or Multiple Appointments at a time
  • Offer Multiple Bookings for the same time slot
  • Set a Minimum and Maximum Booking duration – For Eg: Users can book Minimum of 2 days up to 8 days
  • Allow Booking Cancellations—Set a Time Limit until which Cancellations can be accepted before the booking starts
  • Enable Booking Approvals/Confirmations from the Admin
  • Convert your bookings calendar into Accommodation bookings.
  • Allow per night bookings and display the Check-In and Check-Out date
  • Email notifications to users and admin for a New Booking, Confirmations, and Cancellations
  • Email Reminders to users for upcoming bookings
  • Dynamic total Booking Cost calculation based on number of days or time slots selected
  • Capture Additional information from the users by enabling the Booking Notes field
  • Allow Buffer or Padding time between Bookings(Flexible Buffer After/Before a Booking)
  • Change the Calendar Color to suit your Website Design/Theme
  • Google Calendar Sync
  • Staff Management–Add any number of Staff | Manage Staff Availability | Manage Prices | Manage Leaves
  • WPML support
  • More

To get you started

Demo Frontend – LINK

Demo Backend – LINK

Documentation – LINK

Price Range

Booking: PRO – $99

What is missing?

Do your feature matrix!

portalZINE NMN | Development meets Creativity | hotel booking jetbooking

#5 JETbooking for Elementor ( crocoblock )

“JetBooking plugin is a unique addon developed by the Crocoblock team specifically for rent and booking services, such as vehicles, dresses, apartments, etc.” – Introduction

If you love the possibilities and concept of Elementor, JetBooking could be of interest for you. The extension provides a different approach with similar features or better than those above.

Check their feature comparison here.

I have not played with JETbooking yet, but have worked with almost all their other extensions so far!
Love their style and integration with Elementor.

crocoblock offers a whole suite of plugins that enhance Elementor.
Really high quality extensions, with an amazing detail to design and functionality.

Feature highlights

  • Custom booking post-type & setup
  • Custom Booking Forms and fields
  • Single-page booking
  • WooCommerce integration
  • Neat filter system
  • Google Calendar / Integromat / Zapier / iCal synchronization

To get you started

Demo – LINK

Documentation – LINK

REST API – LINK

JETengine – LINK

JETsmartfilters – LINK

Free Kava Theme – LINK

Dynamic Templates – LINK

JETThemeCore – LINK

crocoblock JETPlugins – LINK

Price Range

JETbooking $19 + JETengine $26 + JETsmartfilters $24 or JET Bundle $130

What is missing?

A channel manager to sync with Airbnb / Booking.com etc, is missing. They have a video tutorial up, that showcases synchronisation to Google Calendar via Zapier / Integromat. I am sure you could also use n8n.io, which you can host yourself ;)

portalZINE NMN | Development meets Creativity | booking yith

#6 YITH Booking and appointment for WooCommerce

I totally forgot about YITH, even though they are the poster child for good WooCommerce solutions.

The plugin implements a booking/appointment system to manage booking of services, rooms, accommodation facilities and more.

It feels more expensive than those above, but it has a huge feature-set and includes bookings and appointments!

YITH shines, when it comes to their documentation.

To get you started

Features – LINK

Demo – LINK

Documentation – LINK

Price Range

$200

What is missing?

Conclusion

These are just some possible solutions. Hope this gives you a little jump-start.
D’ont just use the first best thing, even if it looks impressive on first glance!


I will adjust and tweak this article, as new things come up.

Enjoy coding ….

readmore
19. February 2024

WordPress Cron + WP-CLI + Ntfy

THE GOAL

Create a system cron for WordPress, that is accessible and can be easily tweaked to provide more details. Here some basic information about crons and the tools I am going to use …

WordPress CRON

In WordPress, the term “cron” refers to the system used for scheduling tasks to be executed at predefined intervals. The WordPress cron system allows various actions to be scheduled, such as publishing scheduled posts, checking for updates, sending email notifications, and running other scheduled tasks.

WordPress includes its own pseudo-cron system, which relies on visitors accessing your site. When a visitor loads a page on your WordPress site, WordPress checks if there are any scheduled tasks that need to be executed. If there are, it runs those tasks. This system works well for most sites, but it has limitations, particularly for low-traffic sites or sites that need precise scheduling.

To overcome these limitations, WordPress also provides the option to use a real cron system. With a real cron system, tasks are scheduled and executed independently of visitor traffic. This can be more reliable and precise than relying on visitors to trigger cron tasks.

To set up a real cron system for WordPress, you typically need to configure your server’s cron job scheduler to trigger the wp-cron.php file at regular intervals. This file handles the execution of scheduled WordPress tasks.

List scheduled WordPress events

WP Crontrol is a solid UI, to list and see whats happening in the background.

  • View all cron events along with their arguments, recurrence, callback functions, and when they are next due.
  • Edit, delete, pause, resume, and immediately run cron events.
  • Add new cron events.
  • Bulk delete cron events.
  • Add and remove custom cron schedules.
  • Export and download cron event lists as a CSV file.

WP-CLI

WP-CLI (WordPress Command Line Interface) is a powerful command-line tool that allows developers and administrators to interact with WordPress websites directly through the command line, without needing to use a web browser.

It provides a wide range of commands for managing various aspects of a WordPress site, such as executing crons / scheduled tasks, installing plugins, updating themes, managing users, and much more.

Most WordPress hosts have it preinstalled. Installation

Test CRON

Run CRON

ntfy.sh

ntfy (pronounced notify) is a simple HTTP-based pub-sub notification service. It allows you to send notifications to your phone or desktop via scripts from any computer, and/or using a REST API.

You can host your own docker instance or use the hosted solution.

The documentation is detailed and offers many ways to tweak the resulting notification.

Server CRON / THE OLD WAY

Server – CRON / THE NEW COMBINED WAY

I am not showing you how to create a system cron, that can vary depending on your hosting provider. Some of you will just setup / modify the crontab themselves. So here an example of how I use it these days …

Lets dissect this :)

Execution Timeframe – Minute / Hour / Day (month) / Month / Day (week)

See example usage on crontab.guru.

Capture the output

Im using a variable to capture the output, allowing me to pass it to ntfy.

The command part 1

Use bash to launch wp-cli, passing in required parameters to make sure the right website is targeted.
I am using –due-now to only launch those schedules that are actually pending. >/dev/null 2>&1 prevents any emails to be send for this cron job, it redirects the error stream into the output stream. Always helpful to remove it for the first testdrive.

>/dev/null: redirects standard output (stdout) to /dev/null
2>&1: redirects standard error (2) to standard output (1), which then discards it as well since standard output has already been redirected :)

The command part 2

This part sends the output to a ntfy instance / topic.

  1. -u %token% login / auth with your token
  2. -H “Filename: …” this will move the body text into an attachment file. You can remove this and all output will be part of the body text. ntfy has a body message length limit and will shift to an attachment when reached.
  3. -H “Title: …” Title for the message
  4. -d “$Output” Set the body message to the output we captured, using the set variable
  5. Finally the url to post to, the ntfy instance and topic.

You can set many other things as well, like tags, images …. Check the documentation about publishing for more options. You can even redirect to an email account ;)

Detecting WP-CLI execution programmatically

Detecting WP-CRON execution programmatically

Enjoy coding …
Alex

readmore
9. January 2024

2024 is here and now :)

2024, what’s cooking?

Slowly getting into the 2024 spirit. 3 projects coming to a close this month and looking forward to a couple of new smaller projects in between.

Redoing my whole website this year, so will slowly transition and move content …

A couple of docker projects …

… im currently testdriving or expanding upon!

  • MinIO / Amazon s3 replacement . using it for BOT storage right now
  • Meilisearch . mostly for doing large geo radius searches
  • Vikunja . self hosted To-Do app, always looking for ways to replace Asana in the future.
  • Leantime . self hosted project management. This is getting close to covering all I need :)
  • Bookstack . still my favorite, when it comes to documentation
  • Dockge . a Portainer alternative … not really, but provides easy simple stack management :)
  • Typebot . easy flexible bot builder, with a bunch of integrations. Did a quick WhatsApp bot last year, not perfect yet but really close. They iterate fast. Botpress would be an alternative, but the community edition lacks updates and regular support.
  • Rocket.Chat . has been my goto chat solution for years now, still going strong!
  • TimeTagger . time tracker for projects
  • N8N . workflow automation, just love it. NodeRed is the solution for me locally ;)

Still doing WordPress ?

Yes I do, either via a standard / multisite installation or headless. Not reinventing the wheel for everything ;) Have done some amazing integrations using just the Rest API layer last year.

Also still enjoying creating multi-lingual websites using WPML.

When it comes to templating, I am doing pure custom layouts using Timber, Gutenberg or Elementor. The client decides what he wants and I deliver ;)

Technology Stack / Programming languages of choice?

  • PHP . still my core and favorite language / Python . mostly just for fun
  • Javascript / NodeJS / HTMX / hyperscript . for the fun frontend integrations, still not a TypeScript fan ;)
  • G/O and Realbasic . for commandline, mobile and desktop
  • Pure CSS / SaSS . for all the pure style glory, still no fan of Tailwind
  • MariaDB / PostgresSQL / MongoDB / Redis / InfluxDB . and a couple of others ;)
  • NGINX all the way

AI Solutions!

Love my local open source stack. Tried paid solutions, but rather not spend money and enjoy the rapid fire of new open source models ;)

  • InvokeAI / ComfyUI . Image creation / processing
  • LM Studio . text based models

Have a good start into 2024 and enjoy coding.
Alex

readmore
22. December 2023

2023 ends and whats next !

Short look back at 2023

This has been a busy and interesting year. I am always looking forward to new challenges and this year really had some nice puzzles to solve ;)

2023 has brought us “AI” in all its glory, for content creation and in many development areas. There is no way around it and no way to stop the current revolution. Either we adapt or parish as a developer or content creator.

I have never been a bloom and doom person. If I was, I would no longer be working as a fullstack developer.

LM Studio, ComfyUI and invokeAI, are only a part of the local tools I have been experimenting with. I have always set a side a day during my week to play with new tools or expand my knowledge.

Whats next?

New clients, new connections, old friends and thrilling puzzles :)

Its always difficult to find time to work on my own tools, website and experiments. I really hope that I can set aside a bit more for this 2024.

I wish you all Happy Holidays and a joyful transition into 2024.

Keep on coding!
Alex

readmore

Elementor Pro provides grid containers as an experimental feature. The options provided are limited, when it comes to native controls. The fine-tuning of the grid container items need to be done using Advanced CSS.

If you are looking for a simpler way without using Advanced CSS, I started building out a Grid Tweaker for Elementor.

portalZINE NMN | Development meets Creativity | grid tweaker 1
portalZINE NMN | Development meets Creativity | grid tweaker 2

This will add a new tab to all containers and allows you to tweak grid-row / grid-column. Basic work is done. I am currently tweaking the controls a bit and will make it even easier ;)

Added an example template to import into Elementor. For those interested, the plugin can be freely downloaded from my Github repository. You can also do a search for “cubicfusion-grid-tweaker” on Github.

Cheers and enjoy
Alex

readmore

Archaeology Travel is an online travel guide for people who enjoy exploring the world’s pasts. Inspiration for where to go and what to see. Information and tips on how to get there and what tickets to buy. Making it possible for everyone to find or create their adventures in archaeology and history, from humanity’s earliest times to our more recent contemporary pasts.

I had the chance to design the booth for the Travel Innovation Summit 2023 in Seville. The booth follows the design patterns we agreed on for the website. QR-Codes were used for access to the core principals and all the important areas of the website.

Archaeology Travel

readmore