Smart Schedule is an intelligent web application designed to help students automatically generate a balanced and personalized weekly study schedule.
This project is a full-stack web application that allows users to input their subjects, assign a priority (weight) to each, and select their available time slots throughout the week. The backend then processes this information to generate a proportional and visually organized study plan, which is displayed on the user interface.
π‘ This project was built with a focus on learning Docker β using
Dockerfile,docker-compose.yml, images, containers, and multi-stage builds β to create a portable and scalable development environment.
π Developed during the Alura DevOps Immersion program.
πΉ Subject Management β Add, edit, or remove study subjects with full CRUD support.
πΉ Priority Weighting β Assign weights to subjects to influence time distribution.
πΉ Color Coding β Each subject has a custom color for better visual clarity.
πΉ Availability Grid β Select your available study hours via an interactive weekly grid.
πΉ Auto Schedule Generation β The backend algorithm smartly distributes time based on availability and priority.
πΉ Visual Timetable β View your weekly study plan in a clean, color-coded format.
πΉ Dockerized Setup β Easily run everything with Docker and Docker Compose.
smart-schedule/
βββ backend/ # Flask Python Backend
β βββ venv/ # Virtual environment (ignored)
β βββ app.py # Main Flask application and API logic
β βββ Dockerfile # Instructions to build the backend image
β βββ requirements.txt # Python dependencies
β
βββ frontend/ # React TS Frontend
β βββ dist/ # Production build output (ignored)
β βββ node_modules/ # Node.js packages (ignored)
β βββ public/ # Static assets
β βββ src/ # React source code (components, pages, api)
β βββ Dockerfile # Instructions to build the frontend image
β βββ package.json # Project dependencies and scripts
β βββ tailwind.config.js # Tailwind CSS configuration
β
βββ .dockerignore # Specifies files to ignore in Docker build context
βββ .gitignore # Specifies files to ignore for Git
βββ docker-compose.yml # Defines and runs the multi-container application
βββ README.md # This file You can run this project using Docker (recommended) or manually set up each service.
Make sure you have Docker and Docker Compose installed on your machine.
git clone https://github.com/TiagoSBittencourt/Smart-Schedule.git
cd smart-scheduledocker-compose up -d --buildThe application will be available at:
-
Frontend: http://localhost:3000
-
Backend API: http://localhost:5000
cd backend
# Create and activate virtual environment (first time)
python -m venv venv
# On Windows: venv\Scripts\activate
# On macOS/Linux: source venv/bin/activate
# Install dependencies
pip install -r requirements.txt
# Run the server
python app.py- The backend API will be running on http://127.0.0.1:5000.
cd frontend
## Install dependencies (first time)
npm install
## Start the development server
npm run dev- The frontend will be available at http://localhost:5173.
This project is licensed under the MIT License.


