My DIT Planner is a full-stack web application designed to help students of the Department of Informatics and Telecommunications (DIT) at the University of Athens to track their academic progress and plan their studies effectively.
- Interactive Dashboard: Get a quick overview of your academic progress, including completed ECTS, average grade, and course statistics.
- Comprehensive Course Catalog: Browse, search, and filter all available courses. The search supports both Greek and Greeklish.
- Status & Grade Management: Easily update the status of each course (e.g., Passed, Failed, Planned) and record your grades.
- Drag & Drop Semester Planning: Visually organize your courses into semesters to plan your academic journey.
- Responsive Design: Fully usable on both desktop and mobile devices.
- Frontend: React, Vite, Tailwind CSS, shadcn/ui, dnd-kit
- Backend: Python, FastAPI, SQLite
- Containerization: Docker, Docker Compose, Nginx
.├── backend/ # FastAPI application│ ├── database.py # SQLite database setup and queries│ ├── server.py # API endpoints│ └── Dockerfile│├── frontend/ # React application│ ├── src/│ │ ├── pages/ # Main pages for the app│ │ └── components/ # Reusable UI components│ └── Dockerfile│└── docker-compose.yml # Docker Compose configuration
Clone the repository:
git clone<repository-url>
Navigate to the project directory:
Build and run the backend server:
Move to the backend directory and just run the command:
This will install the needed requirements and run the backend server in a virtual enviroment.
Run frontend
In a new terminal, run the following commands
cd my-dit-planner/frontendnpm inpm run dev
Access the application:Open your web browser and navigate tohttp://localhost:5173
for the frontend. The backend API will be available athttp://localhost:8000
.
To stop the backend services while preserving data:
To stop the frontend and backend services and remove all volumes and images (⚠️This will delete all the containers):
sudo docker-compose down -v --rmi all