Giter VIP home page Giter VIP logo

senior-design-capstone's Introduction

Senior-Design-Capstone

Project Name: CUrPLAN

Background on project name:

CUrPLAN is a unique and customizable degree planning app (currently for computer science students getting a bachelor's degree) that helps students plan their degree without having to remember all the prereqs and restrictions for planning out classes. The name can be said in two ways: C Ur PLAN (see your plan) or CU PLAN (CU for the name of the school, and saying it as is while ignoring the lowercase 'r').

Problem Statement:

It’s 2022, there are a plethora of planner apps that help us organize and prioritize all the activities in our lives, yet currently our course-planning system does not provide the same kind of modernized, interactive experience that current students would expect. Every semester, students have to figure out what classes they need to take for the next semester to stay on track with obtaining their degrees while trying to figure out their career journeys. Currently, CU Denver's Computer Science and Engineering Department offers resources such as advisors, the degree audit, a pdf of the list of elective courses available for the upcoming semester, a static flowchart of the Computer Science BS degree map, and the registration cart to find and add classes. Even though all these resources are available to the students, it’s hard to keep track of them since they come from so many different places. It’s also time-consuming to figure out how far along students are with completing their degree, finding which requirements they still need to fulfill, and what classes will satisfy those requirements, all while lining it up with their other responsibilities outside of the university. In other words, the current resources aren’t interactive or geared towards students’ unique circumstances. Our project, CUrPLAN, is an interactive and customizable web application for the Computer Science BS degree that saves students from having to manually plan out their classes and making mistakes that would delay their graduation.

Features Currently Implemented in the Web App

  1. JSON file of B.S. computer science requirements for current admission year.
  2. Edit Classes mode for the student to select C.S. classes and general core credit classes they have already taken or plan to take.
    1. Menu options for Edit Classes button, to filter to view specific types of classes (C.S. classes or gen ed classes)
    2. Group list view options with collapsible headers in the edit mode.
    3. Each category shows the number of credits taken in the category.
    4. Status toggle buttons for each class (taken, planned, or neither).
  3. Dynamic flowchart view mode for the student to view which classes they have already completed for the degree, and the classes the student still needs to take in the upcoming semesters.
    1. Includes legend at the bottom to help users understand what colors on flowchart mean.
    2. Students can drag classes to a specific semester.
    3. Class restrictions implemented based on students' current degree plan and where the student drags the chosen course.
      1. Class is restricted to Fall only or Spring only.
      2. Class has a prerequisite restriction.
    4. Highlighting courses that are prerequisites on the flowchart by hovering over the course.
    5. Breadth courses populate on flowchart based on classes taken in edit mode.
    6. Provide more information when a user clicks on a class in flowchart mode (Description of what the class offers students).
    7. Flowchart is modified based on the science credit options and the route the student takes (bio/chem/physics).
      1. Bio and Chem classes are 1-2 credits short in the CS BS degree, while Physics classes fulfill all the credit requirements.
      2. The science route taken is based on the total number of science classes of that type chosen (if there are more physics classes taken than chem classes, then the flowchart will display the physics classes).
    8. Each semester in the flowchart view shows minimum credit hours completed per semester (and in total) based on the classes checked as 'Taken'.
    9. Users can click the ‘Expand All Flowchart Boxes” checkbox in the top right corner of the flowchart view to show all the class information.
  4. Saves flowchart view to pdf functionality using web browser or print button.
  5. Save the current state to the json file to continue the degree plan later.
  6. Users can upload a previously saved json continuation file to the web app by clicking on the upload button that displays a file dialog or by dragging and dropping the file in the drop zone.
    1. Message stating whether or not the file uploaded successfully will be displayed.
  7. Option to add custom classes (user-entered class id/credits, for an elective class or a missing class)
    1. Message appears if the custom class was not able to be added.

Development Notes

For notes about the development decisions or structure, check developmentREADME.md.

senior-design-capstone's People

Contributors

palaciosherzog avatar ivyt26 avatar shogun87 avatar magnnusson avatar

Stargazers

Matthew Teets avatar

senior-design-capstone's Issues

Implementing the Presentation Visual Template

Now that we have decided on the slide template: https://slidesgo.com/theme/coffee-shop-business-plan

We need the content of the presentation that we wrote, to go on top of the template.

Your job is to find the best template slides that go with each content type, paste the content of the slides we wrote over the template slides, and make sure there is variation in each slides. That way it is not boring to look at over the course of watching the presentation. Keep it fresh.

For example the title may be in the top left corner on the first slide with the text on the right and a picture underneath, and for the second slide pick an interesting slide that plays off of that, but maybe having the title be on the top right of the slide with the picture on top left and text below.

  • Overview slide,
  • Meet the Team slide,
  • Presentation Roadmap slide,
  • Meet the Stakeholders slide,
  • In Scope slide,
  • Out of Scope slide,
  • User stories slides,
  • Requirements slide,
  • Architecture slide,
  • Risk slide,
  • Estimation slide,
  • Testing slide,
  • Components slide

2nd In-person Group Bonding

@kevinhawekotte Is out of town until August 16th

@matthewteets Sunday nights are the most free

Let's informally plan to meet Sunday, August 21st @ Night and get some dinner and hang out

Location: Downtown Denver, RiNo @ Denver Central Market (2669 Larimer St, Denver, CO 80205)

Organization of the Slides

We want the order of the slides in our slideshow to flow and make sense from the perspective of someone who has no idea what the presentation is about.

Whoever is in charge of this, please figure out the best, most logical order of the slides and organize the slideshow accordingly.

  • Overview slide,
  • Meet the Team slide,
  • Presentation Roadmap slide,
  • Meet the Stakeholders slide,
  • In Scope slide,
  • Out of Scope slide, (should this and the in-scope slide be combined? What's the best for the presentation flow?)
  • User stories slides, (should these slides be included, or is this too much information? What's the best for the presentation flow?)
  • Requirements slide,
  • Architecture slide,
  • Risk slide,
  • Estimation slide,
  • Testing slide,
  • Components slide (keep in mind that THESE SLIDES will be the MOST IMPORTANT; our project is BASED AROUND making component-changes to the already existing app. This should be the crux of the presentation. If some slides need to be cut out or combined to put more emphasis on these slides, please do so. Up to you :) )

Adding Visuals to Each Slide

Right now, all we have on the slides are text. Your job is to add visuals to each slide (be it pictures, videos, drawings, memes, etc.)

We want each slide to be visually appealing to look at, and help guide the viewer in understanding what each slide is about immediately, without having to read a bunch of words or listen. The viewer should be able to only look at the pictures and have at least an idea of what was on each of the slides

Keep the color scheme relatively the same, we don't want any jarring colors

If you feel that some slides would serve better not having pictures, and just having shapes to aid the content of the slide (such as in the requirements slide, adding bubbles around each requirement and then boxes around the requirements name, almost to make it look like a business card, with the title being REQ 001, and the content being the requirement's text), this is your call to make.

Slides 130+ on our presentation have icons that can come in handy for making these visuals as well

  • Overview slide,
  • Meet the Team slide,
  • Presentation Roadmap slide,
  • Meet the Stakeholders slide,
  • In Scope slide,
  • Out of Scope slide,
  • User stories slides,
  • Requirements slide,
  • Architecture slide, (draw a custom version of our Architecture) (draw a user flow diagram, the one that says "user clicks here, goes here, user clicks here, etc.)
  • Risk slide,
  • Estimation slide,
  • Testing slide,
  • Components slide (i would recommend having mockups drawn for what each component would look like. i.e. A picture of what the electives drop down menu would look like, drawn in Google Drawings or something like that)

Discuss Meeting Time

Just want to make sure that Tuesdays at 6:00pm works for everybody.

Next steps:

  • Everybody go ahead and type in your weekly availability for these meetings over summer here

Do we want to "Re-write backend in Java (Prio = 1)"?

In the List of Items to add to the Program #7 as it stands currently, there is a task that exists as a priority 1 (very important):

Re-write backend in Java (Prio = 1)

  • Springboot
  • Retain front-end that they wrote
  • Have someone clean it up
  • Figure out database

This task brings up some points in my head that should be discussed by the team. Here are my opinions, thoughts and worries:

  1. This task is a very daunting, and challenging task. As both the backend and frontend code is currently written in ReactJS, intertwined together in the code, this task will require identifying which parts of the existing code are backend and frontend, splitting them, and integrating the new Springboot Java backend with our existing ReactJS frontend. Does this level of work merit being a change we want to spend time doing? (Think of this in terms of the expo presentation - is this a feasible thing we can "sell" to people at an expo? What problem are we trying to fix by doing this?)
  2. @CyR1en is the only person on our team who currently knows Springboot Java. This task requires the team to learn Springboot Java (which is a worthy accomplishment and a good thing to know), however if Ethan (being our spearhead in completing this Priority 1 task) is out for a week or something happens and we fall behind on this task, we will find ourselves very deep in a hole that we can't dig our way out of.

Here are our options as I see it:

  1. Accept the risks and possible reward, and continue to learn Java Springboot, and rewrite the backend in Java Springboot
  2. Accept the possible reward, but bet on a different MVC technology that we may understand more (such as Python Django) *still requires learning by everybody on the team, but not as much, and no one person to fall on with the task getting completed
  3. Deny this as an option, and maintain the ReactJS backend which has been built up by the previous Senior design team

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.