An open API service indexing awesome lists of open source software.

https://github.com/kareimgazer/chrono-nexus

connect time across global horizons by simplifying the complexities of international time zone management.
https://github.com/kareimgazer/chrono-nexus

typescript unocss vite vue

Last synced: 7 months ago
JSON representation

connect time across global horizons by simplifying the complexities of international time zone management.

Awesome Lists containing this project

README

          

# Chrono Nexus

connect time across global horizons by simplifying the complexities of international time zone management.

A production-grade single page app for time zone management.

## Table of content πŸ“‹

- [Chrono-Nexus 🌀️](#Chrono-Nexus-️)
- [Table of content πŸ“‹](#table-of-content-)
- [Features πŸš€](#features-)
- [Future Roadmap πŸ—ΊοΈ](#future-roadmap-️)
- [Getting Started 🚩](#getting-started-)
- [Locally πŸ–₯️](#locally-️)
- [Development πŸ‘¨β€πŸ’»](#development-)
- [Production 🏭](#production-)
- [Docker πŸ‹](#docker-)
- [Development πŸ‘¨β€πŸ’»](#development--1)
- [Production 🏭](#production--1)
- [Testing πŸ§ͺ](#testing-)
- [Unit Testing πŸ”Ž](#unit-testing-)
- [End-To-End Testing 🎭](#end-to-end-testing-)
- [Project Structure πŸ“‚](#project-structure-)

## Features πŸš€

inspired by [world-time-buddy](https://www.worldtimebuddy.com/)

- search
- multi-location

## Future Roadmap πŸ—ΊοΈ

- E2E Testing (in progress)
- Vitest
- CI/CD

## Getting Started 🚩

We provide two ways one using docker with minimal setup or locally if you don't get comfortable with containers. both provide production and development environments.

### Locally πŸ–₯️

Start by installing [nodejs](https://nodejs.org/en/learn/getting-started/how-to-install-nodejs)

#### Development πŸ‘¨β€πŸ’»

1. run `npm install` at the root of the project
2. run `npm run dev`

#### Production 🏭

for a production build use

```bash
npm run build
npm run preview
```

### Docker πŸ‹

start by downloading [Docker](https://www.docker.com/get-started/)

#### Development πŸ‘¨β€πŸ’»

Uses a nodejs container image and runs the app on the vite development server

```bash
docker compose -f .\docker-compose.dev.yml up --build --watch
```

#### Production 🏭

Uses a multi-stage image building process starting from nodejs image to generate the build, and then uses [goStatic](https://github.com/PierreZ/goStatic) image as a static web server built with Go. It's commonly used with the Jamstack although it's an SPA using Vue.

```bash
docker compose up
```

## Testing πŸ§ͺ

### Unit Testing πŸ”Ž

vitest

### End-To-End Testing 🎭

## Project Structure πŸ“‚

```
Chrono-Nexus
β”œβ”€β”€ src
β”œβ”€β”€ dist static site built files (git ignored)
β”œβ”€β”€ .gitignore files to ignore in the VCS
β”œβ”€β”€ .dockerignore files to ignroe during docker building process
β”œβ”€β”€ dev.Dockerfile Image for running the development server
β”œβ”€β”€ docker-compose.dev.yml development compose file
β”œβ”€β”€ Dockerfile The production container image of the server
β”œβ”€β”€ Dockerfile production compose file
└── index.html
```