GithubHelp home page GithubHelp logo

ay2223s2-cs2103t-t15-4 / tp Goto Github PK

View Code? Open in Web Editor NEW

This project forked from nus-cs2103-ay2223s2/tp

0.0 3.0 5.0 34.89 MB

Home Page: https://ay2223s2-cs2103t-t15-4.github.io/tp/

License: MIT License

Java 98.04% CSS 1.96%

tp's Introduction

CLIpboard

CI Status codecov

Ui

  • This is a team project for Software Engineering (SE) students from CS2103T-T15-4.
  • CLIpboard is a desktop application made for professors or teaching assistants who have a need to manage a significant number of students from different classes.
    Example usages:
    • as a storage to store particulars of students
  • For the detailed documentation of this project, see the CLIpboard's Website.
  • This project is based on the AddressBook-Level3 project created by the SE-EDU initiative.

tp's People

Contributors

zhiyuan-amos avatar swxk19 avatar pyokagan avatar yamgent avatar tyx021 avatar isabelchong avatar damithc avatar afiqzu avatar peaol avatar m133225 avatar mightycupcakes avatar yamidark avatar eugenepeh avatar limmlingg avatar j-lum avatar rinder5 avatar sijie123 avatar chao1995 avatar vivekscl avatar lejolly avatar yl-coder avatar fzdy1914 avatar pierceandy avatar yhtminceraft1010x avatar dependabot[bot] avatar ndt93 avatar edmundmok avatar kychua avatar seanjyjy avatar wltan avatar

Watchers

 avatar  avatar  avatar

tp's Issues

Week 6 #5 Tutorial 1 : tracing code (Isabel)

Following the Tutorial under Week 6 #5 Tutorial 1 for Tracing the execution path here.

Going through the tutorial

  1. Setting Breakpoint:

image

  1. Debugger tool status after running app and entering edit 1 n/Alice Yeoh:

image

  1. Debugger at the switch statement:

image

  1. Checking the contents of editPersonDescriptor in EditCommandParser#parse():

image

  1. EditCommand#execute() method creates a CommandResult object and returns it:

image

  1. Choosing the methods to step into, highlighted in pink:

image

  1. Sending feedback to user (shown up top pane of app):

image


Conclusion cases to try out:

  1. redit 1 n/Alice Yu: AddressBookParser#parseCommand() throws a ParseException for invalid redit command.
  2. edit 0 n/Alice Yu: EditCommandParser#parse() throws a ParseException for invalid index.
  3. edit 1 n/Alex Yeoh: No exceptions as expected.
  4. edit 1: EditCommandParser#parse() throws a ParseException as no field is updated.
  5. edit 1 n/アリス ユー: ParserUtil#parseName() throws a ParseException caught in `MainWindow#executeCommand'.
  6. edit 1 t/one t/two t/three t/one: No exceptions as expected as ParserUtil#parseTags() uses a Set to filter the additional one tag out in EditCommand#parseTagsForEdit().

Components to modify to perform following enhancements:

  1. Make command words case-insensitive: Convert commandWord in AddressBookParser#parseCommand() to lower case before running through the switch statements.
  2. Allow delete to remove more than one index at a time: Can allow varargs, or change the implementation of ParserUtil#parseIndex() to handle more than just a oneBasedIndex. Below is a short code of what could be done instead, excluding the actual implementations of the overloaded method.
   public static Index parseIndex(String oneBasedIndex) throws ParseException {
      // If there is possibly more than one index
       if (oneBasedIndex.trim().contains(" ")) {
              return parseIndex(oneBasedIndex.trim().split(" ");
       }
       ...
   }
  1. Save the address book in the CSV format instead: In storage, add in appropriate files corresponding to the Json classes to be replaced with Csv. We also have to change the addressBookFilePath to the following (json to csv):
private Path addressBookFilePath = Paths.get("data" , "addressbook.csv");
  1. Add a new command: Generally, just add a new class inheriting from logic.commands.Command , and update the AddressBookParser#parseCommand to include the new command in the switch case.
  2. Add a new field to Person: Add the new field into model.person, and add it as a field under the Person class. Update methods accordingly to include the new field.
  3. Add a new entity to the address book: I assume this new entity is still a person. In that case we can make Person an abstract class and have new entities such as Student or Teacher inheriting from it. New fields can be added into the corresponding new entities.

General Testing Issues

(Add on to this checklist)

  • Add testing for view command
  • Add testing for remark command
  • Update testing for add command
  • Update testing for edit command
  • Update testing for EditCommandParser
  • Add testing for 'upload' command
  • #53

Smoke-Tests:

Update these when our product is finalized.

  • Runnable on Windows (as of commit: 14f0194)
  • Runnable on MacOS (as of commit: 14f0194)
  • Runnable on Linux (as of commit: 14f0194)

Make window of displaying error message resizable

Currently, the window displaying error message resizable is fixed-size and it's troublesome for user to scroll around and read the message.

Let's make that part resizable so that it will enlarge as the app window expands.

image

General Documentation Issues

This list is not exhaustive, please add on to it if you encounter any additional issues

Requirements as per Week 7:
DG
UG

Link to CLIpboard Guides

Would be better to categorise these according to the respective document they would affect. But no time for now :-)


Bugs

Landing Page

  • Missing link to UG in header
    Original:

image

Current:

image


User Guide

  • Update docs for newly added/changed commands
  1. List of available commands
  2. add command format changed.
  3. view command keyword does not match UG (show). Either change the UG or change the code
  4. Missing upload command
  • README, Landing Page & UG: UI mockup does not match actual UI

Developer Guide

  • Still references AB3.
  • Landing Page: references AB3 instead of CLIpboard

image

image

  • AboutUs: Contact information uses filler email

image

- [x] DG.Glossary: Student information does not match our implementation

image


Improvements (can be pushed to next iteration instead)

  • Landing Page: Header title does not match our product name (is this intended?)

image

  • Proof-read UG for v1.2
  • Proof-read DG for v1.2
  • Apply concepts from CS2101 (Crucial for grading)

Add testing for UndoCommand

#90 implementation has been completed, but lacking testing class & methods.

On hold until more features have been merged

Refactor AB3 code to suit CLIpboard

Currently, variable and class names in AB3 such as 'Person' class are not applicable to CLIpboard.

Let's change these names to better suit CLIpboard.

Possible renaming changes:
'Address book' -> 'Student Roster'
'address' field in Person -> 'studentId'

Remaining tasks (non-exhaustive):

  • Rename json files used in testing (see #53)
  • Most variable names have been changed, but some might have been missed. Keep a lookout.

As a TA, I want to add new students with their particulars

.. so that I can create a new profile for a student.


Basic adding functionality has already been implemented in AB3.
Below are what is to be refactored or added for CLIpboard.

  • Extend Module from Tag
  • Add PREFIX_MODULE = m/ prefix and update AddCommandParser to use PREFIX_MODULE (must have at least one) before PREFIX_TAG (zero or more).
  • Update AddCommand instructions for MESSAGE_USAGE to have m/ beforet/
  • At least one module has to be added (in AddCommandParser)
  • Allow adding of notes together with adding of student command (Tentative after #21 is merged)
Eg. add n/John Doe p/98765432 e/[email protected] sid/A1234567X m/CS2103T n/Discussing Topic A on 3 Mar 2023

Note that some aspects of EditCommand have been changed due to overlaps of the functionality of modules.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.