- Surmai
- Features
- Rationale
- Mobile Apps
- Screenshots / Screencasts
- Demo
- Installation
- Credits
- Possibly FAQ
Surmai is a personal/family travel organizer. The app is built to solve 3 particular challenges while planning a trip:
- Allow collaborative planning between multiple people.
- Allow easy access to all the necessary artifacts during the course of the trip.
- Keep the data private.
NOTE: This is a very very alpha stage project and under active development. Please report any issues using Github Issues.
- Organize a trip in one place
- Allow collaboration between multiple users
- Offline access
- Privacy
- Mobile friendly
As avid travellers, we (me & SO) split up the planning tasks e.g. booking plane tickets and making dinner reservations etc, with the receipts / confirmation emails being in our own respective inboxes. These emails were tagged but were not necessarily organized chronologically. It was also a huge pain to find the right email at the right time, especially given some low bandwidth connections.
I've been a Backend software engineer for the last ~20 years. My last professional interaction with Javascript was
pre jQuery days when Internet Explorer 5 demanded we test the navigator
every time something was to be written. I have
been exposed to the "new" Javascript at my current job as a necessity and decided to use this project as a learning
opportunity.
Surmai is built as a Progressive Web App. It's possible to install it as a regular app on mobile phones. Installation Instructions
A demo is available at https://demo.surmai.app/
Demo Account:
Email: [email protected]
Password: vi#c8Euuf16idhbG
Feel free to create an account and explore.
NOTE: The demo site is cleaned up every hour.
The source code provides a Dockerfile
and a docker-compose.yaml
to get started. Ill update the documentation as I
have
a ready-to-use docker image hosted somewhere.
SURMAI_ADMIN_EMAIL
: Email address of the initial user to be created. This email will also have admin access to the BackendSURMAI_ADMIN_PASSWORD
: Password for the initial account. Minimum of 10 characters
# Check out the source code
git clone https://github.com/rohitkumbhar/surmai.git
# Build a docker image locally
docker compose build
# Run the docker image
docker compose up -d
volumes:
surmai_data:
services:
surmai_server:
container_name: surmai_server
image: ghcr.io/rohitkumbhar/surmai:v0.0.1
volumes:
- surmai_data:/pb_data
ports:
- "9090:8080"
restart: always
environment:
SURMAI_ADMIN_EMAIL: [email protected] # Add your default administrator email
SURMAI_ADMIN_PASSWORD: ChangeMe123#@! # Admin password. Min 9 characters with all the fixings
PB_DATA_DIRECTORY: /pb_data # Must match volume directory above
Surmai uses PocketBase as it's backend platform. The API is great and the documentation is first-class. The PocketBase Admin UI also allows for configuration that is not available from within Surmai (yet).
Surmai is a React based SPA built using the absolutely phenomenal library Mantine. Vite for building and prettier for formatting.
From OurAirports
From countries-states-cities-database
~20 years as a backend dev, I have a tendency to lean towards function over form.
I wanted to learn React/Typescript, that's about it. So many side projects have languished because I gave up when it came to building the UI. I wanted this one to be different.