Click to see my project on GitHub
This is my capstone project, which I developed during my traineeship at neuefische in 2022 and revised a little bit in 2024.
⏰ Timetable Generator
Welcome to the Timetable Generator! This project helps you manage your daily schedule using the time blocking technique. By answering a few simple prompts about your personal schedule, this tool generates a visual timetable that organizes your habitual tasks into clear blocks of time.
Whether you’re aiming to boost productivity, focus on important tasks, or better organize your day, this tool can help you plan your time more efficiently.
📝 Features
- Interactive Scheduling Prompts: Answer basic questions about your daily habbits, work, and leisure time.
- Visual Timetable: Automatically generates a clean, organized timetable to visually represent your daily plan.
- Time Blocking: Implements the time blocking method by organizing tasks into dedicated time slots, reducing distractions and improving focus.
- Downloadable PDF: Easily download your generated timetable as a PDF to use offline, print, or share.
- Enhanced Productivity: Use the timetable as a guide to structure your day and make the most of your time.
🛠️ Technologies Used
This project utilizes a modern web technology stack for both backend and frontend development:
Backend:
- Java: Backend logic and RESTful API built with Spring Boot.
- Spring Boot: For backend development and REST API.
- Spring Security: Securing the application and user authentication.
- MongoDB: NoSQL database for storing scheduling data.
Frontend:
- React: Frontend user interface for interacting with the application.
- HTML5 & CSS3: For building and styling the frontend structure and layout.
- TypeScript: Type-safe JavaScript code for the frontend.
Deployment:
- Heroku and MongoDB Altas: Hosting and deploying the application including its database online.
- GitLab CI/CD: Being used for automatic code checks and deployment after each push to remote
- Docker: Containerized MongoDB for local deployment.
Frontend-Utils:
- React Router: For handling navigation between different frontend routes.
- Axios: For making API requests from React to the Spring Boot backend.
- ‚react-to-pdf‘: JavaScript package to export the timetable as a downloadable PDF.
- Testing & Debugging: Various tools and methods to ensure reliability and smooth operation.
✨ Future Enhancements
- using the Google Calendar API to export the timetable to your Google Calendar
🌟 What is Time Blocking?
Time blocking is a productivity technique that involves dividing your day into blocks of time, with each block dedicated to a specific task or activity. By planning your day in advance, you eliminate indecision, minimize distractions, and ensure that time is reserved for important tasks.
With this timetable generator, you can easily implement time blocking by visually organizing your day into structured, goal-oriented blocks.
💡 How Time Blocking Helps You
- Focus: Work on one task at a time, reducing multitasking.
- Prioritization: Ensure high-priority tasks are completed on time.
- Time Management: Maximize productivity by dedicating time for each activity.
- Stress Reduction: By having a clear plan, reduce the anxiety of deciding what to work on next.