{"id":84,"date":"2025-11-20T15:05:00","date_gmt":"2025-11-20T22:05:00","guid":{"rendered":"https:\/\/courses.cs.colostate.edu\/cs415\/?page_id=84"},"modified":"2026-01-12T21:30:52","modified_gmt":"2026-01-13T04:30:52","slug":"project","status":"publish","type":"page","link":"https:\/\/courses.cs.colostate.edu\/cs415\/project\/","title":{"rendered":"Project"},"content":{"rendered":"\n<h1 class=\"wp-block-heading\">CS415 Semester Project<\/h1>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\" \/>\n\n\n\n<h2 class=\"wp-block-heading\">1. Goal<\/h2>\n\n\n\n<p>The goal of the project is to work in a team of&nbsp;<strong><u>5-6<\/u><\/strong>, and apply the concepts, techniques, and tools that you learn in this class to the development of an application in an iterative, incremental fashion. In the process, you will get practice assessing the quality of test cases, adding test cases by using systematic testing strategies, and using build tools (e.g., maven) to run a variety of testing tools and frameworks.<\/p>\n\n\n\n<p>Do not use ChatGPT for this project. Disruptive team behavior will result in removal. Vulgar, crass, demeaning, condescending, etc, language, emojis, images, etc are unacceptable in all communication, verbal or online. Be professional and ethical.<\/p>\n\n\n\n<p>Grading will involve both the process and the final products in each iteration.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\" \/>\n\n\n\n<h2 class=\"wp-block-heading\">2. Project Topic<\/h2>\n\n\n\n<p>The application involves building part of a project management system for a company to manage projects, workers, and their qualifications. The core logic will be implemented in Java and will have enums (e.g., ProjectSize and ProjectStatus) and classes (e.g., Worker, Qualification, Project, and Company). There will be controller classes (e.g., DBConnector and RestController). There will also be a front end using React and Javascript. There will be three sprints during which you will develop the functionality and systematically add test cases.<\/p>\n\n\n\n<p>We posted a few short assignments in Canvas to gather information about your skillset, personality, GitHub username, and choice of project partner (only 001 students can choose a partner). You must submit your answers by Jan 23. This will let us form teams by the end of the first week of classes, and create GitHub teams and private channels in Microsoft Teams.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\" \/>\n\n\n\n<h2 class=\"wp-block-heading\">3. GitHub Usage<\/h2>\n\n\n\n<p>All your work for this project must be done in GitHub inside the CSU-CS415-Spring26 organization where we will create repos for each team. The repos will be accessed by the instructor and the GTAs for grading purposes. Activity in GitHub will be part of the process grade. You must start working from day one, and not procrastinate. You must follow the practices you learned in cs314 (e.g., regarding pull requests, frequently commit your work, etc).<\/p>\n\n\n\n<p>Configure your GitHub username and email address on all systems you will use. If you have multiple GitHub usernames, use only the username you provided to cs415 and its associated email address for all work in this class unless you wish to work anonymously or use a pseudonym, and don&#8217;t want to get credit for your work in the class.<\/p>\n\n\n\n<p>When you are adding or modifying code, good practice indicates that you work on multiple branches. Thus, you can freely create and remove branches. We recommend using pull requests and issues. All changes should be merged to main\/master.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\" \/>\n\n\n\n<h2 class=\"wp-block-heading\">4. Teams communication<\/h2>\n\n\n\n<p>Each team will generally have a few minutes to discuss in every lecture. Note that attendance is required in the lecture.<\/p>\n\n\n\n<p>Outside of class, team communication must happen via Microsoft Teams. We will create private channels for each team inside the &#8220;CompSci CS415 Spr24&#8221; course team. Messages in the channels will be used for grading purposes.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\" \/>\n\n\n\n<h2 class=\"wp-block-heading\">5. Sprints<\/h2>\n\n\n\n<p>The project will run from the second week of classes until the last week of classes. This lets us have three sprints, each about four weeks long (ignoring the gap caused by spring break). Here is a rough outline of what happens in each sprint. Details for each sprint will be available at the appropriate time.<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>Sprint 1: Jan 29 &#8211; Mar 3<\/strong><ul><li><strong>Tasks:<\/strong>&nbsp;Implement core business logic. Develop JUnit tests using input space partitioning.<strong>Topics:<\/strong>&nbsp;Writing unit tests, using input space partitioning, and measuring code coverage.<strong>Tools:<\/strong>&nbsp;JUnit 4.0 and JaCoCo.<\/li><\/ul>Click&nbsp;<a href=\"https:\/\/courses.cs.colostate.edu\/cs415\/sprint-1\/\" data-type=\"page\" data-id=\"93\">here<\/a>&nbsp;for details.<\/li>\n\n\n\n<li><strong>Sprint 2: Mar 05 &#8211; Apr 09<\/strong><ul><li><strong>Tasks:<\/strong>&nbsp;Assess tests using mutation score and improve tests. Run SAST tool and address issues through refactoring. Use automatic test case generators. Implement RestController and DBConnector mocking.<strong>Topics:<\/strong>&nbsp;Mutation analysis, static analysis, automatic test generation, Rest API and Mocking<strong>Tools:<\/strong>&nbsp;PIT, PMD, EvoSuite, Randoop, Mockito<\/li><\/ul>Click&nbsp;<a href=\"https:\/\/courses.cs.colostate.edu\/cs415\/sprint-2\/\" data-type=\"page\" data-id=\"95\">here<\/a>&nbsp;for details.<\/li>\n\n\n\n<li><strong>Sprint 3: Apr 14 &#8211; May 7<\/strong><ul><li><strong>Tasks:<\/strong>&nbsp;Front end development<strong>Topics:<\/strong>&nbsp;Acceptance testing, web testing<strong>Tools:<\/strong>&nbsp;Fitnesse and Selenium<\/li><\/ul>Click&nbsp;<a href=\"https:\/\/courses.cs.colostate.edu\/cs415\/sprint-3\/\" data-type=\"page\" data-id=\"97\">here<\/a>&nbsp;for details.<\/li>\n<\/ol>\n","protected":false},"excerpt":{"rendered":"<p>CS415 Semester Project 1. Goal The goal of the project is to work in a team of&nbsp;5-6, and apply the concepts, techniques, and tools that you learn in this class to the development of an application in an iterative, incremental fashion. In the process, you will get practice assessing the quality of test cases, adding [&hellip;]<\/p>\n","protected":false},"author":29,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_kad_blocks_custom_css":"","_kad_blocks_head_custom_js":"","_kad_blocks_body_custom_js":"","_kad_blocks_footer_custom_js":"","footnotes":""},"class_list":["post-84","page","type-page","status-publish","hentry","post-preview"],"taxonomy_info":[],"featured_image_src_large":false,"author_info":{"display_name":"ghosh","author_link":"https:\/\/courses.cs.colostate.edu\/cs415\/author\/ghosh\/"},"comment_info":0,"_links":{"self":[{"href":"https:\/\/courses.cs.colostate.edu\/cs415\/wp-json\/wp\/v2\/pages\/84","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/courses.cs.colostate.edu\/cs415\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/courses.cs.colostate.edu\/cs415\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/courses.cs.colostate.edu\/cs415\/wp-json\/wp\/v2\/users\/29"}],"replies":[{"embeddable":true,"href":"https:\/\/courses.cs.colostate.edu\/cs415\/wp-json\/wp\/v2\/comments?post=84"}],"version-history":[{"count":5,"href":"https:\/\/courses.cs.colostate.edu\/cs415\/wp-json\/wp\/v2\/pages\/84\/revisions"}],"predecessor-version":[{"id":107,"href":"https:\/\/courses.cs.colostate.edu\/cs415\/wp-json\/wp\/v2\/pages\/84\/revisions\/107"}],"wp:attachment":[{"href":"https:\/\/courses.cs.colostate.edu\/cs415\/wp-json\/wp\/v2\/media?parent=84"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}