Git Product home page Git Product logo

c-project's Introduction


Logo

A backup software made for you by our team from ProSoft
Explore the docs »

UML Diagrams · Console Program · Request Feature

Table of Contents

About The Project

Our team has just integrated the software publisher ProSoft.   Under the responsibility of the CIO, we are in charge of managing the "EasySave" project which consists in developing a backup software.  As any software of the ProSoft Suite, the software will be integrated into the pricing policy.

  • Unit price : 200 €HT
  • Annual maintenance contract 5/7 8-17h (updates included): 12% purchase price (Annual contract tacitly renewed with revaluation based on the SYNTEC index)

During this project, we will have to ensure the development, the management of major and minor versions, but also the documentation (user and customer support).  To ensure that our work can be taken over by other teams, we must work within certain constraints such as the tools used (see Software restrictions). 

Release dates and versions :

  • Version 1.0 : 25/11/2020
  • Version 2.0 : 07/12/2020
  • Version 3.0 : 17/12/2020

Software restrictions

This section lists each of the major technologies used to complete this project. For anymore details you can see the acknowledgements section.

Version 1.0

The specifications of the first version of the software are as follows : 

The software is a Console application using .Net Core. It must allow the creation of up to 5 backup jobs.

A backup job is defined by :

  • An appellation
  • A source directory
  • A target directory
  • One type
  • Full
  • Differential
  • English

The user may request the execution of one of the backup jobs or the sequential execution of the jobs.
The directories (sources and targets) can be on local, external or network drives.
All the elements of the source directory are concerned by the backup.

Daily Log File :

The software must write in real time in a daily log file the history of the actions of the backup jobs. The minimum expected information is :

  • Timestamp  
  • Naming the backup job
  • Full address of the Source file (UNC format)
  • Full address of the destination file (UNC format)
  • File Size 
  • File transfer time in ms (negative if error)    

Status File The software must record in real time, in a single file, the progress of the backup jobs.  The minimum expected information is :  

  • Timestamp  
  • Naming the backup job
  • Backup job status (e.g. Active, Not Active...) If the job is active
    • The total number of eligible files
    • The size of the files to be transferred 
    • The progression         
    • Number of remaining files  
    • Size of remaining files  
    • Full address of the Source file being backed up
    • Complete address of the destination file

The locations of the two files described above (daily log and status) will have to be studied to work on the clients' servers. As a result, "c:\temp" type locations are to be avoided.

The files (daily log and status) and any configuration files will be in XML or JSON format. In order to allow fast reading via Notepad, it is necessary to put line feeds between the XML (or JSON) elements. A pagination would be a plus.

Getting Started

To get a local copy up and running follow these simple example steps. But before anything else you should be sure to have Visual Studio 2019 in order to run the program.

Prerequisites

Once you will have set up your computer You will have to clone this project.

  • Git
git clone https://github.com/5c0rp264/C-Project

Then refer to the usage section and you will be ready to go !

Usage

Now that you have cloned this repository you can open the project in visual studio and run it as you wish. Because of the current version (1.0) you may need to delete the database json file. If you are using the first release version (branch v1.0) you can just use the .exe file. Then you can add / edit / delete any backup work via the main interface delivered by the view.

For more examples, please refer to the Documentation

Project Management

In order to allow each member of our team to create and participate in the most efficient way possible we had to put together a project management strategy. This strategy translates into our collaborative work via the GitHub platform, where our code and the use of design templates such as the VCM have allowed us to easily distribute tasks. Moreover, in a concern of perenniality of the application, these design patterns will allow us to pass in a second time to a graphic interface in a much simpler way.

Beyond GitHub we also collaborated via Azure Devops via a board, adding To Do list so that everyone knows the remaining tasks and have a simpler and clearer vision of our Github repository. But also to set up pipelines to certify that our code is working properly and that we are using good practices during this project.

Contributing

Contributions are what make the open source community such an amazing place to be learn, inspire, and create. Any contributions you make would be greatly appreciated.

  1. Fork the Project
  2. Create your Feature Branch (git checkout -b feature/AmazingFeature)
  3. Commit your Changes (git commit -m 'Add some AmazingFeature')
  4. Push to the Branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

License

Distributed under the MIT License. See LICENSE.txt for more information.

Contact

Tanguy Lhinares - Website - [email protected]
Quentin Aoustin - Resume - [email protected]
Vincent Jacques - LinkedIn - [email protected]
Jérémy Gabriel - [email protected]
Rémi Mounier - [email protected]

Project Link: https://github.com/5c0rp264/C-Project/

Acknowledgements

c-project's People

Contributors

kablade avatar 5c0rp264 avatar jackalco avatar remimounier avatar sasoriii avatar

Forkers

jackalco kenftt

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.