srenduch / excal Goto Github PK
View Code? Open in Web Editor NEWClass and assignment tracker inspired by GCal and Excel
Home Page: https://srenduch-excal.herokuapp.com
Class and assignment tracker inspired by GCal and Excel
Home Page: https://srenduch-excal.herokuapp.com
============ Excal ============ The name ``excal`` is derived from Microsoft's Excel and Google's Google Calendar. This project was created to serve as a seamless bridge between the two, since Excel did not support class scheduling to the extent that Google Calendar did (even though that's not its primary purpose), and Google Calendar did not support test and assignment tracking with features such as conditional formatting, automatic time remaining updaters, etc. The objective of Excal is to mimic the behavior of Google Calendar in how it displays class items, while adding in the functionality of Excel so that each class instance displays the schedule on which the class recurs, as well as any class assignments and tests, with the ability to add notes, resources, and more. ============ Building for Linux ============ Download and install the latest stable versions of ``Python`` and ``pip``. Then navigate to the project root directory. Build instructions are available in ``/Dockerfile``. If you choose to build a docker image, you can do that by using ``docker build .`` The process is fairly similar for Windows and macOS environments.
alt+n
displays the "new" modal (popup), need a similar hotkey to display the "delete" modalMaybe a item type toggler like in the new modal, and based on the active item type, display elements accordingly?
Possible layouts:
Pick the class the assignment belongs to, then in an (not pictured here) adjacent drop-down pick the assignment to delete
a_name
) within the same classWant a method to retain caching functionality while keeping it centralized.
This would make it so that the caching mechanism is centralized, while reducing code redundancy.
The current view on the homepage:
Need a way to delete this item. For now, let's try adding a clickable element to the right of the title, perhaps a button.
On button-click, remove the item from the homepage and remove the corresponding element from the db table.
Preferably, the deletion would be dynamic in that it is reflected across the page on the click itself (without reloading the page).
If that doesn't work, we might need to reload the page for the changes to take effect.
Might also need JS to do this but hopefully we can keep it in Python.
This may be useful for reference.
Currently, the assignment, class, and tests tables are stored in a local database in /db/db.sqlite3
. This is a naive approach for the following reasons:
By porting this local database instance to a server instance:
Just like the DB API written to communicate with the DB in backend, we need a similar DB written for the frontend so that we can invoke those methods across various DOM element-user interactions. The frontend API has the same limitations and goals as the backend API.
Currently, assignments only refresh on page reload or HTTP request.
Things to consider:
Current dynamic is done by generating HTML with the dynamic info on the server-side.
We can probably offload this overhead by creating a client-sided HTML generator object, so that HTML generation is centralized and easy to modify.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.