Skip to content

VeronikaSukhonos/chronos

Repository files navigation

Chronos

Chronos is a planning service that helps you manage tasks, set reminders and organize arrangements across multiple calendars.

The application was developed as a solution to the chronos challenge of Track Full Stack, the last stage of the Innovation Campus educational program. Our team had 5 weeks (November-December 2025) to design and implement the solution.

Features

  • automatically created default calendar for each user and a calendar with the national holidays in the user's country
  • ability to create, update, delete, archive calendars, invite other users to them by email, search and follow public calendars (admin access for an author of the calendar)
  • ability to create, update, delete events of different types (arrangement, reminder, task, holiday, birthday) in own calendars and calendars you were invited to by email (admin access for an author of the event and an author of the calendar)
  • ability to create, update, delete tags for events
  • ability to search events, filter visible events by calendars, types, tags and view them in month, week, day representations

Additionally:

  • pleasant and responsive design with satisfying colors, helpful icons and many custom components
  • friendly authentication (registration, login, password reset, email confirmation)
  • profile management (updating login, avatar, full name, email, password and date of birth that can be easily added to the calendars)

Homepage

Requirements and dependencies

All you need preinstalled is the Docker Desktop.

Tech Stack

Backend

npm packages:

  • axios
  • bcryptjs
  • express, express-validator
  • jsonwebtoken
  • mongoose
  • multer
  • nodemailer

Frontend

Other packages:

  • axios
  • date-fns
  • react-datepicker
  • react-toastify
  • validator

External APIs

How to use

Clone the repository to your local machine and navigate to the project directory:

git clone https://github.com/VeronikaSukhonos/chronos.git
cd chronos

Create .env file with variables specified in .env.example file.
To get IP_API_KEY, register here.

Build the project

Launch the Docker Desktop, and, in the same directory where docker-compose.yml file is located, run the command:

docker compose build <app-dev/app-prod>

Write app-dev to run the development build, and app-prod to run the production build.

In the development build, you can change files both in backend and frontend directories (except Docker-related files like Dockerfile), and servers will be restarted automatically.

Run the app

To run the app, use the following command:

docker compose up <app-dev/app-prod>

You can run this command without docker compose build - the app will be built first (if not yet) and then automatically launched.

API server will run at:

  • http://localhost:8080 in the development build
  • http://localhost:8888 in the production build

Web application will run at:

  • http://localhost:5173 in the development build
  • http://localhost:8000 in the production build

If you want to see some container's logs, in the Docker Desktop, click on the corresponding container and open Logs tab.

Open container's logs

Stop the app

When you are done, tear the app down by using the command:

docker compose down

Team

Documentation

Project documentation can be found here and contains:

  • description of our experience (activities, findings, problems, conclusions) while working on a project according to Challenge Based Learning (CBL) framework
  • description of all API endpoints
  • screenshots of all features

About

Planning service that helps you manage tasks, set reminders and organize arrangements across multiple calendars

Topics

Resources

Stars

Watchers

Forks

Contributors