TeacherTodoScreen is a web-based application crafted for educators (and basically anyone who can make use of this), enabling efficient task, event, and announcement management. It features an intuitive admin panel for content customization, supporting rich text editing, sorting, and styling options. The user-friendly interface offers both light and dark modes, ensuring seamless engagement with auto-updated information via a JSON file.
-
Task, Event, and Announcement Management:
- Organize and display tasks, events, and announcements for educators.
-
Admin Panel with Content Customization:
- Facilitates content creation and customization.
- Supports rich text editing, display sorting, and styling options.
-
Dynamic Main Screen:
- Presents events dynamically and allows pinning important items.
-
Data Management with JSON File Integration:
- Auto-updates using data stored in a JSON file for efficient content delivery.
-
User-Friendly Interface:
- Provides light and dark mode options for personalized viewing.
- Implements automatic pagination for managing large volumes of information.
The repository structure includes two main sections: Root and Admin (also refered to as Frontend and Backend), each containing specific files related to the application functionalities.
- HTML & JavaScript Files:
- Responsible for displaying events.
- JSON File:
- Contains event details given by the backend.
- CSS File:
- Contains styling rules for the frontend.
- HTML & JavaScript Files for Admin Panel:
- Handles backend functionalities for content management.
- CSS File:
- Contains styling rules for the admin panel/ backend.
- .htacces File:
- Makes it so that you have to enter a password and username before you can use the backend.
File | Description |
---|---|
index.html | HTML file responsible for displaying the Gymnasium Neusiedl News website. It dynamically adds data fetched from output.json to the designated container. |
output.json | Contains a list of objects representing tasks or events, preferences, timestamps, and individual event details used by the frontend for display. |
saveFile.php | Processes POST requests by storing received content into output.json. Validates requests and reports success/error messages based on saving the text. |
script.js | Fetches the output.json file, updates HTML code to display events, manages event display, and configures settings such as mode and page-turn interval. For further information read DOCUMENTATION.md. |
style.css | Contains CSS rules for index.html with preprogrammed colors for light and dark mode. |
File | Description |
---|---|
index.html | HTML code for the backend, includes the quill.js library. Contains input fields for event details and a display area updated by JavaScript to show the events with an option to remove the event or edit it. |
saveFile.php | Processes POST requests by saving incoming content to ../output.json. Verifies requests, writes to the specified file, and communicates the outcome. |
script.js | Initiates a Quill text editor, populates an event list, fetches actual event data, updates event display, and manages user interactions and settings. This one's much more complicated actually, go read the file comments and DOCUMENTATION.md for detailed information. |
style.css | Contains CSS rules for index.html. Includes declarations of custom web fonts and styling for the admin panel. This one indeed does not include a dark and light mode setting, but the colors are rather neutral so it should be usable by night as well as by day. |
.htaccess | Configures basic HTTP authentication for the admin subdirectory, requiring valid credentials before access. |
- Clone the TeacherTodoScreen repository into the
/var/www/html/
directory (make sure it is empty):
sudo git clone https://github.com/GymND-Informatik/TeacherTodoScreen /var/www/html
- Change to the project directory:
cd /var/www/html/
- Ensure you have the right permissions (just run them all):
sudo chmod 777 . -R
sudo chown -R www-data:www-data /var/www/html/
sudo chmod -R 755 /var/www/html/
- if you haven't already, start apache:
sudo systemctl start apache2
Contributions are welcome! Here are several ways you can contribute:
- Submit Pull Requests: Review open PRs, and submit your own PRs.
- Join the Discussions: Share your insights, provide feedback, or ask questions.
- Report Issues: Submit bugs found or log feature requests for GYMND-INFORMATIK.
Click to expand
- Fork the Repository: Start by forking the project repository to your GitHub account.
- Clone Locally: Clone the forked repository to your local machine using a Git client.
git clone <your-forked-repo-url>
- Create a New Branch: Always work on a new branch, giving it a descriptive name.
git checkout -b new-feature-x
- Make Your Changes: Develop and test your changes locally.
- Commit Your Changes: Commit with a clear and concise message describing your updates.
git commit -m 'Implemented new feature x.'
- Push to GitHub: Push the changes to your forked repository.
git push origin new-feature-x
- Submit a Pull Request: Create a PR against the original project repository. Clearly describe the changes and their motivations.
Once your PR is reviewed and approved, it will be merged into the main branch.
- Distribution of work:
- 35% Filip
- 35% Kubo
- 4% Elias
- 1% Rest
- 25% ChatGPT