Specifications
For C# .NET assignment, you need to complete and add a database persistence
component to the GUI desktop application project. The application is a ToDo list manager and
should allow the following options for the user:
1. Create a new task
2. Delete an existing task
3. Edit an existing task
4. Complete a task
5. List all outstanding (not complete) tasks
6. List all tasks
7. Save
8. Load
The application contains a Task class with the following public properties:
● Name
● Description
● Deadline
● IsCompleted
App Feature Requirements:
● Paging – When the user requests more than 5 tasks by asking for a list of
outstanding or overall tasks, present those as a paged list with five results pe
page.
● Calendar Appointments – Calendar Appointments should be implemented as a
special case of a task and placed in the same central list for storage using
polymorphism. The Appointment class should have the following properties.
Shared properties should be implemented in a base class called Item from which
oth Task and Appointment derive.
a. (string) Name
. (string) Description
c. (DateTime) Start
d. (DateTime) Stop
e. (List) Attendees
● Calendar Appointments CRUD – The menus should be modified such that
calendar appointments are returned when the user asks for their tasks and the
user should clearly be able to determine if an Item instance is a Task or an
Appointment. You should also add prompts that allow creation and update of
Tasks and Appointments. Deletions should be handled the same for both derived
classes.
● Server-side Searching – Add a feature that asks the user for a search string and
eturns only items in the items list that contain that search string in their name,
description, or list of attendees (for Appointments). This means filtering the list of
Items on the server side BEFORE returning them as a response to a GET
equest (i.e. items that don’t match the search key aren’t sent over the wire at all).
● GUI – The application has a Graphical User Interface (either using UWP, WPF, o
Xamarin.Forms)
● Serialization – The application has JSON serialization/deserialization
implemented through a save/load feature or menu item to save the task list and
load a task list. (You can allow the user to specify a name for saving and a name
for loading and save/load files from a hardcoded directory within the user’s
AppData cache).
● Priority – The Item class must incorporate a property called “Priority”. Items of
either type (Appointment or Task) should display the priority (Low, Medium, o
High) to the user, and the user should be able to sort their task list by priority.
● Web API – The CRUD operations are Web API methods for the following:
○ CRUD for Tasks (including retrieving both complete and outstanding
tasks)
○ CRUD for Appointments
○ Server-side Searching
● Client-Server Data Synchronization: The data on the client and server side
must be synchronized such that adding an item on the client application results in
the server-side list being updated, same with deletes and updates to items.
The CRUD operations should be in Web API methods for the following:
● CRUD for Tasks (including retrieving both complete and outstanding tasks)
● CRUD for Appointments
● Server-side Searching
Deliverables:
Besides implementing and testing the above stated features, your job is to migrate the
CRUD methods of the client app and API with a persistent database. Your database
implementation may be in MongoDB, FireBase, SQL, MySQL, Postgres, etc. When a
user adds, updates, or deletes a task/appointment in the client side app, that change
must be reflected upon closing and relaunching the client app even when the API
solution or the entire machine hosting the API is rebooted. You MUST submit a
video demonstrating this functionality: Your video must demonstrate:
● Adding a todo and an appointment
● Updating a todo and an appointment
● Deleting a todo and an appointment
Each of your demonstrations should show how you are persisting to the database fo
storage and no longer using in memory storage on the web server.
Submit your two different Visual Studio solutions (one for the client application and one
for the API)
The post Specifications For C# .NET assignment, you need to complete and add a database persistence component to the GUI desktop application project. The application is a ToDo list manager and should allow the following options for the user: 1. Create a new task appeared first on My Blog.