Coder Social home page Coder Social logo

harmim / vut-ivs-project-2 Goto Github PK

View Code? Open in Web Editor NEW
3.0 4.0 1.0 2.18 MB

Praktické aspekty vývoje software - Project 2 - calculator

License: GNU General Public License v3.0

C# 92.68% Makefile 7.32%
c-sharp gnu-gplv3 windows wpf dot-net mstest nmake

vut-ivs-project-2's Introduction

Hello 👋

My name is Dominik Harmim.

I am a Senior Software Engineer, AI/ML 🖥 at Oracle NetSuite, based in Brno, Czech Republic.

I like to learn new things and share my knowledge with the community.

Here is a link to my Linkedin: https://www.linkedin.com/in/dominik-harmim.

You may contact me using one of the following addresses:

Harmim's GitHub Stats

Harmim's Most Used Languages

NOTE: Most Used Languages do not indicate my skill level or anything like that. It is a GitHub metric of which languages have the most code at my GitHub repositories.

vut-ivs-project-2's People

Contributors

harmim avatar hertl avatar timoti111 avatar

Stargazers

 avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

Forkers

t7mike

vut-ivs-project-2's Issues

Link GUI Interface with Math library

@harmim
Link GUI interface from issue #9 and math library from issue #6.

  • Handle GUI elements events.
  • Process exceptions.
  • Display user documentation from issue #11 as help after clilck on help button in PDF or Markdown format. Maybe use any third party library for it.

Create Makefile

@harmim

Create Makefile with these targets:

default target is all.

  1. If it isn't necessary, don't use absolute paths.
  2. if it is possible, don't use source file names.

How to run Makefile in Windows:

GUI interface

@timoti111
Create GUI interface (windows layout, elements behavior, resizing window, colors, etc.).
Windows must contain

  • numeric buttons
  • buttons for math operations from our math library interface #6
  • decimal point button
  • buttons for clear screen (C, CE, backspace,...)
  • buttons for get result (=)
  • buttons for work with memory (MS - store, M+, M-, MR - return, MC - clear)
  • elements for screen
  • elements for work with history
  • way to copy and paste values
  • buttons for get help and help dialog/window

Create files xloginNN_problemy.txt

@harmim @timoti111 @hertl @Matej-Havlas

Each team member create file xloginNN_problemy.txt contains list of problems or suggestions about this project. At least 3 problems or suggestions listed from most important to least important.
Focus on:

  • communication
  • cooperation
  • leadership team
  • deadlines
  • activity
  • tools

Profiling standard deviation

@harmim
Profile standard deviation console application implement in issue #16.

For profiling use tool dotTrace.

Profile program with

  • 10 numbers
  • 100 numbers
  • 1000 numbers

Create protocol with profiler output (output.*) and summary with information (report.txt|pdf):

  • where the program spend the most time
  • what to focus on when optimizing

Create tests for math library by Interface IMath

Create tests for math methods from interface IMath

We are using Test-driven development concept, so we have to create tests first.

As unit testing framework, we will use MSTest and dotCover for test coverage.

@harmim
Prepare testing enviroment and tests these methods:

  • sum
  • subtract
  • divide
  • multiply
  • factorial

@hertl
Create tests for these methods:

  • exponentiation with general exponent
  • general square root
  • logarithm of the general basis

https://msdn.microsoft.com/en-us/library/system.math(v=vs.110).aspx

Implementation of math library by interface IMath and Tests

Implementation of math library by interface IMath #6 and tests #8.

Create static class Math in namespace Disassembler in file Math.cs

@Matej-Havlas
Implement this methods:

  • sum (using + operator)
  • subtract (using - operator)
  • divide (using / operator)
  • multiply (using * operator)
  • factorial (using your own algorithm, do not use recursion please)

@timoti111
Implement this methods:

  • exponentiation with real exponent
  • general square root
  • logarithm of the general basis

you can use .NET math library Math or you can implement your own algorithm, as you want.

Don't forget for exceptions like as divide 0, logarithm domain, etc.

Finally check, if and how your implementation cover our tests using dotCover.

@timoti111
Can you please do some screenshots of debugging your code?

Create readme file

Create README.md file.

Readme must contain information about:

  • choosen enviroment
  • authors
  • license

Program documentation in Doxygen

Doxygen
@timoti111
Prepare enviroment for generating program documentation using doxygen. Use Doxyfile for settings.

@timoti111 @hertl @Matej-Havlas
To be able to generate documentation, we have to use XML Documentation Comments in C#
example:

/// <summary>
/// A search engine.
/// </summary>
class Engine
{
  /// <summary>
  /// The Search method takes a series of parameters to specify the search criterion
  /// and returns a dataset containing the result set.
  /// </summary>
  /// <param name="connectionString">the connection string to connect to the
  /// database holding the content to search</param>
  /// <param name="maxRows">The maximum number of rows to
  /// return in the result set</param>
  /// <param name="searchString">The text that we are searching for</param>
  /// <returns>A DataSet instance containing the matching rows. It contains a maximum
  /// number of rows specified by the maxRows parameter</returns>
  public DataSet Search(string connectionString, int maxRows, int searchString)
  {
    DataSet ds = new DataSet();
    return ds;
  }
}

see:

Visual Studio can help you with writing this type of documentation as you can see in this video https://www.youtube.com/watch?v=aa7cvJAJOcY.

Standard deviation

@harmim
Create file structure in repo for this new console application.

@hertl
Create console application calculation standard deviation using our math library #6.

Standard deviation of numbers read from STDIN will be calculated using the formula:
xxx

see Task

PDF presentation

@harmim @hertl @timoti111 @Matej-Havlas

Create PDF presentation xharmi00.pdf about the project. Presentation takes 6 minutes. First 1.5 minutes will be about created solution, next parts will be about experience gained while working in a team.

Create rating of team members

@harmim @Matej-Havlas @timoti111 @hertl
We must create file hodnoceni.txt with personal rating of individual team members in the range of 0 to 100% according to team member activity and its contribution to the project.

Format of this file is:

xlogin01 X
xlogin02 X
xlogin03 X
xlogin04 X

Mockup GUI

@Matej-Havlas
In branch mockup modify GUI (new version of Calculator).

In this mockup, you can switch to scientific mod which must contain

  • sin, cos, tan
  • PI, e
  • brackets
  • drawing graphs of functions

then you can switch to mode where you can work with stopwatch.

Project plan

  • Create issues on Github and assign them into project.
  • Create plan that we have to transmit as stated in Task.

Create archive xlogin01_xlogin02_xlogin03_xlogin04_plan.zip contains:

  • xharmi00_xhalas10_xhavla06_xhertl04_plan_github_project.jpg (screen of GitHub projects plan)
  • xlogin01_xlogin02_xlogin03_xlogin04_plan.txt contains:
    • deadlines
    • allocation of tasks to the individual project solvers
    • communication channels and rules
    • selected VSC and hosting for remote repo + information how teacher can access to repo

User documentation

@Matej-Havlas
Write user documentation im Markdown format in our Wiki. Create for it new file UserDocumentation.md.

What must user documentation contain:

  • how to work with the application
  • the procedure for installing and uninstalling the program using the installer
  • instructions for manual installation
  • how to run a program on a selected environment, and that environment we chose

Find way, how to export documentation to PDF (documentation.pdf) so we are able to deliver.

Initialize project in Visual Studio (C# .NET WPF)

  • Initialize project in Visual Studio.

We will use WPF (Windows Presentation Foundation) framework.

  • Share editor configuration eg. end of lines style, code style, etc. using EditorConfig or built in Visual Studio settings.

@timoti111 @hertl @Matej-Havlas

This can help us http://www.itnetwork.cz/csharp/formulare/wpf. It is "tutorial" how does WPF work.

There is someting about Git and GitHub integration in Visual studio:

it is optional, we can use only command line for work with Git.

Create interface for math library

Create interface IMath in file IMath.cs and in namespace Disassembler.

Interface should contain headers of methods:

  • sum
  • subtract
  • divide
  • multiply
  • factorial
  • exponentiation with general exponent
  • general square root
  • logarithm of the general basis

Application un/installer

Create un/installer for application.
I do not know yet how to do it. In Visual Studio, there is way how to create installer. Can you find out about it more information please?
We need create .exe installer which install appliaction and other components, create desktop icon, etc.

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.