Skip to content

Alae-J/Toki

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

32 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Toki ✨

A clean, full-stack task manager app with Pomodoro integration. Built from scratch to defeat tutorial hell and embrace real-world development.


Toki Preview


🧠 Why Toki?

Toki isn’t just another task manager β€” it’s the first app I’ve fully built on my own, from UI to backend logic. After months of tutorials, I wanted to break free and build something real, something I could iterate on, refine, and deploy. That’s how Toki was born.


✨ Features

πŸ“‚ Task Management

  • Create, update, delete tasks
  • Set priority levels (high/low)
  • Filter by priority
  • Sort by:
    • Recent updates
    • Due date
    • Estimated time
    • Progress (based on Pomodoro sessions)
  • Toggle between Board View (card layout) and List View (rows)

πŸ… Pomodoro Integration

  • Focus, Short Break, Long Break sessions
  • Auto-starts Breaks after focus ends
  • Manual-start for Focus (ensures user is ready to work)
  • Tracks focus sessions per task

🎨 User Customization

  • Set your own Pomodoro durations
  • Customize session colors (Focus, Breaks)
  • Change password and set a fun username

πŸ” Authentication & Security

  • JWT-based login/register
  • Auto-removal of expired tokens via Axios interceptor
  • Redirection to login + toast when session expires

πŸ“± Visuals & UX

  • Fully responsive (desktop & mobile)
  • Clean, intuitive interface
  • Animated icons & tooltips for better guidance

πŸ’‘ Dynamic Motivation System

Each task generates a unique motivational quote based on:

  • Estimated time
  • Time left before deadline
  • Sessions completed

It’s a tiny system that nudges you to break it down, focus, and win.


πŸ“° Live Demo

Try Toki in action:

πŸ”— click here for live demo


πŸ‹ Docker Support

Toki is fully Dockerized with production-ready builds for both the frontend and backend.

You can spin up both with:

docker compose up --build

This runs:

  • A React + Vite frontend
  • A Spring Boot backend, connected to a cloud-hosted PostgreSQL database

πŸ’  Customize for Local Dev (Optional)

If you'd like to run everything 100% locally, including the backend and database:

  1. Uncomment the db service inside docker-compose.yml.

  2. Create your local .env file:

    # FRONTEND
    VITE_BACKEND_URL=http://localhost:8080
    
    # BACKEND
    SPRING_DATASOURCE_URL=jdbc:postgresql://db:5432/tokidb
    SPRING_DATASOURCE_USERNAME=postgres
    SPRING_DATASOURCE_PASSWORD=tokipass
    JWT_SECRET=some-random-long-secret
  3. Expose the right port in your frontend Dockerfile:

    EXPOSE 3000
    CMD ["npx", "serve", "-l", "3000", "dist"]

πŸ“Έ Screenshots

πŸ”‘ Authentication

Login Register
Login Register

🏠 Dashboard & Task Management

Dashboard – Board View Dashboard – List View
Board View List View
  • Sort & Filter:

    Sorting Filtering
    Sorting Filtering
  • Add / Edit Tasks:

    Add Task Edit Task
    Add Task Edit Task
  • Empty State:

    When no tasks are found, Toki welcomes you with a sad tomato πŸ… No Tasks


⏱️ Pomodoro Sessions

Focus Short Break Long Break
Focus Short Break Long Break

Sessions auto-switch from Focus β†’ Break, and wait for manual confirmation before Focus restarts.


βš™οΈ Settings

Durations / Theme Profile Tab (Username & Password)
General Settings Profile Settings

πŸ“± Mobile Experience

Dashboard Pomodoro
Mobile Dashboard Mobile Pomodoro

πŸ› οΈ Tech Stack

Frontend

  • React + TypeScript
  • TailwindCSS
  • Axios
  • Vite

Backend

  • Spring Boot
  • Spring Security (JWT)
  • PostgreSQL / H2
  • RESTful APIs

πŸ“ Project Structure

frontend/src
β”œβ”€β”€ App.tsx                  # Main app entry
β”œβ”€β”€ assets/images            # Logos, illustrations, mascot
β”œβ”€β”€ components/              # Layout, Navbar, Toasts, Floating Add Btn
β”œβ”€β”€ features/
β”‚   β”œβ”€β”€ auth                 # Login/Register forms + pages
β”‚   β”œβ”€β”€ pomodoro             # Timer logic and UI
β”‚   β”œβ”€β”€ settings             # Theme, duration, profile
β”‚   └── tasks                # Task views, forms, filters
β”œβ”€β”€ hooks/                   # useTasks, useOverflow (for UI)
β”œβ”€β”€ services/                # API abstraction layer
β”œβ”€β”€ routes/                  # Client-side routing
└── types/                   # Shared types

backend/src/main/java/com/taskmanager/taskmanager
β”œβ”€β”€ entity/                  # Task, User, UserSettings
β”œβ”€β”€ repository/              # Data access layers
β”œβ”€β”€ service/                 # Business logic (Task, User, Settings)
β”œβ”€β”€ security/                # JWT config, filter, controller
β”œβ”€β”€ web/                     # REST controllers
└── ApplicationExceptionHandler.java

πŸ‘¨β€πŸ’» About the Author

Hey! I'm Alae, a first-year software engineering student from Morocco πŸ‡²πŸ‡¦.

Toki is the first real app I’ve built after escaping tutorial hell β€” a full-stack project that challenged me to understand architecture, flow, and deployment from scratch.

My dream? To work or intern in Japan and grow through purposeful development.

LinkedIn Post – Read My Journey


πŸ“ƒ License

This project is not licensed. It’s a personal learning milestone.


Built with grit, vision, and a tomato. πŸ…

About

React / Spring boot Task Manager App

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors