Skip to content

nramc/journeys

Repository files navigation

GitHub Actions Workflow Status Quality Gate Status Release Website Badge

Journeys

Your Portal to the Past

Website YouTube

Watch on YouTube

👉 Click the image above to watch a short demo of this project on YouTube.

Journey is a personal project designed to help users document and relive their travel experiences in a rich, immersive way. The platform allows travellers to seamlessly store memories of their trips, combining textual narration, geographic information, and multimedia elements such as photos and videos.

With Journey, users can:

  • Capture stories of their adventures with detailed narratives.
  • Log geotagged locations to visually map their travel routes and destinations.
  • Upload and organize images and videos, creating a digital scrapbook of their experiences.

Whether it's a weekend getaway or a year-long adventure, Journey enables users to keep all their cherished travel moments in one organized place, transforming trips into unforgettable stories.


This is an Angular 21 based Geo Spatial Single Page Application (SPA) deployed to GitHub Pages. It communicates exclusively with a separate REST API backend (BFF) — there is no server-side rendering.

Geographical data is processed in GeoJSON format and rendered on an interactive map powered by Leaflet with MapTiler tiles and geocoding.

Tech Stack

Layer Technology
Framework Angular 21 (standalone components, zoneless, Signals)
UI Components Angular Material (M3 theme)
Styling Tailwind CSS v4
Maps Leaflet + MapTiler SDK
Media Cloudinary
Auth JWT (Bearer token, stored in localStorage)
Testing Karma / Jasmine
Deployment GitHub Pages via angular-cli-ghpages

Helpful Links

Getting Started

Please find below steps to set up and run application in your workstation.

Prerequisites

  • Node.js (LTS recommended) and npm
  • A running instance of the Journey API (BFF) — see its README for Docker setup
  • A Cloudinary account (cloud name + upload preset)
  • A MapTiler API key

Installation

  1. Clone the repository:
    git clone https://github.com/nramc/journeys.git
    cd journeys
  2. Install dependencies:
    npm install
  3. Configure your local environment in src/environments/environment.development.ts:
    export const environment = {
      journeyApi: 'https://localhost:8080/rest',
      cloudName: '<your-cloudinary-cloud-name>',
      cloudinaryPreset: '<your-upload-preset>',
      maptilerKey: '<your-maptiler-key>',
      // ...
    };
  4. Start the dev server (HTTPS, uses keystore/ certs):
    npm run start

Available Scripts

npm run start       # Dev server at https://localhost
npm run build       # Production build
npm run test        # Karma/Jasmine unit tests (interactive)
npm run ci:test1    # Headless tests (ChromeHeadless)
npm run lint        # ESLint
npm run ci:deploy   # Deploy to GitHub Pages

Contribution

Any contributions you make are greatly appreciated.

If you like the project and have a suggestion that would make this better, please fork the repo and create a pull request. You can also simply open an issue with the tag "enhancement".

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

Note for AI agents & contributors: See AGENTS.md for architecture details, coding conventions, and patterns specific to this codebase.

Release new version

  1. Manually run Release Workflow
  2. The Workflow flow uses Conventional Changelog Action Plugin, which determines next version based on commit logs
  3. Based on the determined release type (MAJOR or MINOR or PATCH), bump version in package.json
  4. The Workflow creates Release as well with release notes and make the release as latest
  5. As soon as new Release created, which triggers gh-page deploy workflow
  6. When build successful, Application available on https://nramc.github.io/journeys

Contact

Ramachandran Nellaiyappan

Credits

Sincere Thanks to following open source community for their wonderful efforts to make our life much easier.

Show your support

Give a ⭐️ if you like this project!

About

Journey is a personal project designed to help users document and relive their travel experiences in a rich, immersive way. The platform allows travellers to seamlessly store memories of their trips, combining textual narration, geographic information, and multimedia elements such as photos and videos.

Topics

Resources

Stars

Watchers

Forks

Contributors