Polska wersja / English version
A modern and refreshed timetable application for Zespół Szkół Technicznych i Ogólnokształcących (ZSTiO), built with cutting-edge web technologies. This intuitive application simplifies access to class schedules and substitutions, providing a seamless experience for students, teachers, and staff.
- Universal Compatibility 🌍: Adaptable to any school using UONET timetables. Simply configure the
NEXT_PUBLIC_TIMETABLE_URL
environment variable. - Seamless Substitution Integration 🔄: View substitutions directly within the timetable, with options for manual adjustments (requires
NEXT_PUBLIC_SUBSTITUTIONS_URL
). - Personalized Favorites ⭐: Save your frequently accessed classes, teachers, and rooms for instant access.
- Effortless Free Room Search 🔎: Quickly find available rooms by day and lesson number.
- Smart Shortened Lesson Calculator ⏱️: Dynamically adjusts the timetable to reflect shortened lesson durations.
- Convenient Calendar Export (ICS) 📅: Download your timetable in ICS format for seamless integration with your favorite calendar applications.
- Responsive Design for All Devices 📱💻: Access your timetable on the go or from your desktop with a consistent and user-friendly interface.
- Elegant Dark Mode 🌙: Switch between light and dark themes for optimal viewing comfort.
- Offline Access with PWA Support 🔌: Install the application as a Progressive Web App for blazing-fast loading and offline access.
- Robust Error Tracking (Sentry)
⚠️ : Integrated with Sentry for proactive error monitoring and enhanced application stability. - Streamlined Deployment with Docker 🐳: Leverage the provided Dockerfile for effortless deployment and a consistent environment.
- Next.js: The React framework for production.
- TypeScript: For type safety and improved developer experience.
- Tailwind CSS: Rapidly build modern user interfaces.
- shadcn/ui: Beautiful and accessible UI components.
- @majusss/timetable-parser-js: Efficient data scraping and parsing.
- @majusss/substitutions-parser: Handles substitution data with ease.
- Zustand: Lightweight and performant state management.
- Next Themes: Effortless theme switching.
- Sentry: Real-time error tracking and performance monitoring.
- Docker: Containerization for simplified deployment.
-
Clone the repository:
git clone https://github.com/rvyk/zstio-timetable.git cd zstio-timetable
-
Install dependencies:
pnpm install
-
Configure environment variables:
Create a
.env.local
file based on.env.example
and set the following:NEXT_PUBLIC_TIMETABLE_URL
(required): The URL of your school's UONET timetable.NEXT_PUBLIC_APP_URL
(required): The base URL of your application.NEXT_PUBLIC_SUBSTITUTIONS_URL
(optional): The URL of the substitutions page. Leave blank if not used.SENTRY_AUTH_TOKEN
(optional): Your Sentry authentication token.
-
Development Server:
pnpm dev
Access the application at
http://localhost:3000
. -
Production Build (Docker Recommended):
docker build -t zstio-timetable-docker . docker run -p 3000:3000 zstio-timetable-docker
-
Production Build (Alternative):
pnpm build pnpm start
Contributions are welcome! Please open an issue or submit a pull request.
MIT License. See the LICENSE file for details.