Dayta is a calendar application developed using Tauri, React and Typescript in Vite.
mszoezo / dayta Goto Github PK
View Code? Open in Web Editor NEWLicense: GNU General Public License v3.0
License: GNU General Public License v3.0
There is no way to create an event to put on the calendar.
A calendar is kinda useless without being able to list things that are happening on it
We need to be able to create an event. The bare minimum would be a title and a start time.
There is no week calendar view.
Without a week calendar view, the user cannot see their schedule for the selected week in more detail.
We'll add a calendar view with 7 full height rectangles one for each day of the week with the vertical axis being for time.
There isn't a global colour scheme using css variables.
Without a colour scheme it's hard to keep styling consistent and harder to change colours later on when they are referenced in 20 separate style rules.
We'll add colour variables to our global css file, so that every component can reference these in their styling.
There is no base layout for a calendar.
It allows users to have a clear distinction in where different UI elements are or will be.
We need a general layout. The proposed layout would be a sidebar for controls, and a main calendar section.
There isn't a global dark mode colour scheme using css variables.
Without a dark mode colour scheme many of our users may be blinded.
We'll add colour variables to our global css file specific for dark mode.
There is no calendar view switching mechanism.
Without this switch mechanism the user can't switch between calendar views,
We'll add a button to our control panel which when clicked slides out a menu with our calendar view options.
We aren't storing the users settings.
Without settings being stored, they are lost when the user exists the app which is unexpected behaviour.
When starting the application we'll send a json object containing our settings from rust to our react front-end. We'll store settings in the front end using react context. Upon changing and saving our settings we'll send them back to rust where we'll save them in an appropriate way for each platform.
With css writing maintainable stylesheets is complicated, the chance of it becoming an intangible mess is high.
When css becomes unmaintenable it significantly slows down development.
By adding scss support to our project.
Without a database we can't store events.
The user expects their events to be saved for the next time they use the app, if they were lost it would be one hell of a lousy calendar.
We'll add a database to our rust backend with a schema for events.
With the default titlebar on each system its hard to keep our style consistent.
The user expects an uniform look across platforms.
We'll create a custom titlebar component and add it in our app.
We don't have any unit testing yet.
Unit testing better defines the inputs and outputs for functions that are being used, and ensures that maintenance doesn't break anything.
We should add a unit testing framework to our project, and add tests for existing modules
The control panel looks bad :3
While function should be the main priority, form should not be ignored. Users don't want to look at a plain screen.
We should create a theme for the panel. It should be made with other panels in mind, to ensure the app is cohesive.
We can't switch between layouts.
Without the ability to switch we can't get to our settings layout and back to the calendar one.
We'll use React Router to switch between our layouts.
We currently don't perform any checks when creating a pull request (linting, unit tests, etc)
Right now, this isn't a problem: we don't have unit tests, and as of writing, #21 is still open. There is no need for actions to be run. That said, if we do either, we should ensure that they run as part of the pull request workflow to make sure that the code we are writing isn't going to lead to further issues down the line.
If #21 is completed, or if we implement unit tests, we should ensure that they are run by GitHub actions to automatically run when pulls into main are done
We have existing linting issues
By moving #23 and #25 into main, we are now going to get issues related to linting on every branch, regardless of if they have their own linting issues or not, due to the preexisting ones. This could result in us not taking the error messages seriously: they are always bad, who cares?
We should fix the preexisting linting errors.
We cannot retrieve events from storage to display in view.
We will not be able to show the user any events that they have created outside of the current session.
Once we have an idea for how data is going to be stored (see #14), we need to have a way to retrieve those events and display them. The ways may be different based on the current calendar view
There isn't a way to change settings.
The user expects a graphical interface for changing settings.
We'll create a new view with all options.
We don't have a linter for the project.
This results in code that is messier, with less consistent standards.
We should add a linter to have clearer enforcement of coding standards
To make a desktop app you often need specialized tooling for each platform, instead we'll use Tauri to make a cross-platform application using web technologies and Rust.
The calendar layout doesn't look great.
While function is paramount, users aren't going to want to use an app that doesn't look good.
We should make a unified theme for the calendar layout, which can then be overridden by the sub-modules.
There is no month calendar view.
Without a month calendar view, the user cannot see their schedule for the selected month in a glance.
We'll add a calendar view with 31 blocks for every day of the month up to 31 days.
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.