/rem

A reminder ecosystem that will include a desktop application, web application, and a command line tool.

Primary LanguageC#

Rem

Documentation

Database

The database was created using Postgres and will hopefully be hosted on Vercel soon. It is comprised of 3 tables.

1. user

user_id username password email completed_reminders total_reminders
1 example password example@email.com 2 6

user_id: A unique id for each user. This connects the user to their reminders. username: The users username. password: The users password. email: The users email. completed_reminders: The total number of reminders the user has completed during the lifetime of the account. total_reminders: The total number of reminders the user has created during the lifetime of the account. This includes completed and deleted reminders.

2. reminders

reminder_id user_id title date completed
1 1 Example reminder 2024-01-01 false

reminder_id: A unique id for each reminder. This connects the reminders to the work_on_dates table. user_id: A unique id for each user. This connects the user to their reminders. title: The title of the reminder. date: The date of the reminder. completed: Status of the reminder (complete/incomplete)

3. work_on_dates

reminder_id date1 date2 date3
1 2024-01-01 2024-01-02 2024-01-03

reminder_id: A unique id for each reminder. Connecting the reminder to the list of dates. date: List of dates connecting to the reminders for additional working on dates.

Command Line Tool

Usage

Command Description
init Initialize reminder system files. (This only needs to be run once)
add Add a reminder to list. You will be prompted for a title, date, and optional 'work on days'.
complete Mark or unmark reminder as completed.
view Print your reminders.
help Displays all commands and descriptions available.

init

add

The user will be prompted to enter reminder. If the user uses the keyword on followed by the date of when the reminder should be, the reminder will be added to that day. You may use semantic dates (today, Monday, Tuesday, etc.) or numerical dates (1/1/24, etc.) when entering the date. If the keyword on is not used, the user will be prompted to insert a date. If the user decides to cancel adding the reminder, simply press enter with a blank prompt. If on the beginning reminder prompt, the task will exit. If on the secondary date prompt, the user will be prompted again saying "✘ You must enter a date (Press enter again to cancel add).". Press enter again and the task will be exited without adding the reminder. If the reminder was successfully added to your reminder list, a success message reading "✔ Successfully added reminder to list." will be displayed. If any errors occur, the user with be notified accordingly.

Work on Days Coming Soon!

view

Your reminder list will be displayed. At the top, it displays the current day of the week and the date. Below the line, each day of the current week will be displayed.

Categories

If there are any overdue reminders from previous week, there will be a 0 Past section displayed. If there are any reminders in the future from the current week, there will be a 8 Future section displayed. Each day of the week has a number next to the name (i.e. 1 Sunday).

Reminder Fields

Each reminder is categorized under the day that the reminder is due and displays four fields.

1 Example Reminder                 1/1/2024   [ ]

This number signifies a unique identifier for each day. This is used when marking reminders complete (see complete).

1 Example Reminder                 1/1/2024   [ ]

The title of the reminder.

1 Example Reminder                 1/1/2024   [ ]

The date the reminder is due. This value determines where the reminder is categorized.

1 Example Reminder                 1/1/2024   [ ]

Status of the reminder. If the reminder is incomplete this will display as [ ]. If the reminder has been completed, this will display as [x] and will be greyed out.

Coloring

The heading (containing the current day and the week and date) as well as the current day in the week in the section below are colored yellow signifying it is the current day. The rest of the days in the week are colored blue as headings.

The reminders can be three colors: white, grey, or red. A white reminder is a reminder that is currently active and not overdue. A red reminder shows that the reminder is overdue. A grey reminder is a reminder that has been marked completed. Any completed reminders will be deleted automatically when they are past the current week.

complete

Gives the ability to mark or unmark a reminder as completed. This feature takes two arguments.

rem complete [category name/number] [reminder number]

The category name or number determines what day or category the reminder wanting to be marked is apart of. This can be a category title (i.e. Monday, Past, Future, etc.), a semantic date (Today), or numerical date (i.e. 1/1/24).

rem complete [category name/number] [reminder number]

The reminder number is a unique number found on the left side of the title while using the view command (see view). This number specifies which reminder within the category chosen will be marked complete or incomplete.