<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Laurent Bourgon</title>
    <description>The latest articles on DEV Community by Laurent Bourgon (@bourgonlaurent).</description>
    <link>https://dev.to/bourgonlaurent</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F390899%2F3960742a-59e8-418e-a3a2-396944caa4ef.jpeg</url>
      <title>DEV Community: Laurent Bourgon</title>
      <link>https://dev.to/bourgonlaurent</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/bourgonlaurent"/>
    <language>en</language>
    <item>
      <title>Saving Time as a Student: Create Custom Documents in 10 seconds</title>
      <dc:creator>Laurent Bourgon</dc:creator>
      <pubDate>Thu, 21 May 2020 02:43:29 +0000</pubDate>
      <link>https://dev.to/bourgonlaurent/saving-time-as-a-student-create-custom-documents-in-10-seconds-4hea</link>
      <guid>https://dev.to/bourgonlaurent/saving-time-as-a-student-create-custom-documents-in-10-seconds-4hea</guid>
      <description>&lt;h4&gt;
  
  
  How I used my free time to speed up my school tasks
&lt;/h4&gt;




&lt;h2&gt;
  
  
  🧐 Problem Statement
&lt;/h2&gt;

&lt;p&gt;Throughout my years at school, I've found that its &lt;strong&gt;biggest challenge is &lt;em&gt;time&lt;/em&gt;&lt;/strong&gt;.  A lot of tasks are &lt;em&gt;repetitive&lt;/em&gt;, they can be &lt;em&gt;troublesome&lt;/em&gt; and they shorten the time you dedicated for something. As a student learning programming ― and also wanting to go in this field ― I wondered how I could help. It is possible to see your friends and have good grades, while still being a human; you don't need &lt;em&gt;more&lt;/em&gt; time, you just need to use it &lt;em&gt;efficiently&lt;/em&gt;.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Aren't you wasting time by inventing, coding, debugging and sharing your tool instead of just doing it?&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;When I tell someone about my projects, this is sometimes the reaction I have. Let's be honest, I'm &lt;em&gt;using&lt;/em&gt; time by making all these tools. Another thing I've learned is that you have &lt;em&gt;free time&lt;/em&gt;: the normal student would use it to go on social media, binge watch a TV show, play games or read a book ― yes, there are still people reading books for fun in 2020. It is not abnormal to have a day with almost nothing to do, and the next you'll need to work all day.&lt;/p&gt;

&lt;p&gt;So did I &lt;em&gt;waste&lt;/em&gt; time? Absolutely not! I've learned so much and had fun while making these tools. Productivity isn't maximizing all the time, it is maximizing it &lt;strong&gt;when you need it&lt;/strong&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  💡 Why this project
&lt;/h2&gt;

&lt;p&gt;While I have made a few tools to boost my productivity, going from simple flashcards to a &lt;a href="https://github.com/BourgonLaurent/TelegramSuttonForecast"&gt;Telegram bot&lt;/a&gt;, the project I chose to write about is &lt;strong&gt;pyÉtude&lt;/strong&gt;. &lt;em&gt;I'm not good with names, and since it is made with &lt;code&gt;python&lt;/code&gt;and made for studying, &lt;code&gt;étude&lt;/code&gt; in French, my native language, I decided to call it that way.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;This project really improved my coding skills: it started with almost no use of functions, to something using classes and libraries, and it is only the beginning. I plan on improving this tool as long as I'm using it. When I use it, I often write down some features I would like to have ― or polish ― and then add them on another day. Being able to be your own tester is one of the best feelings.&lt;/p&gt;

&lt;h2&gt;
  
  
  🎈 pyÉtude
&lt;/h2&gt;


&lt;div class="ltag-github-readme-tag"&gt;
  &lt;div class="readme-overview"&gt;
    &lt;h2&gt;
      &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--vWogaON8--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://practicaldev-herokuapp-com.freetls.fastly.net/assets/github-logo-28d89282e0daa1e2496205e2f218a44c755b0dd6536bbadf5ed5a44a7ca54716.svg" alt="GitHub logo"&gt;
      &lt;a href="https://github.com/BourgonLaurent"&gt;
        BourgonLaurent
      &lt;/a&gt; / &lt;a href="https://github.com/BourgonLaurent/pyEtude"&gt;
        pyEtude
      &lt;/a&gt;
    &lt;/h2&gt;
    &lt;h3&gt;
      📝 Programme Python qui permet de créer des documents personalisés.
    &lt;/h3&gt;
  &lt;/div&gt;
&lt;/div&gt;


&lt;p&gt;pyÉtude is a tool that I've made to create Microsoft Word &lt;code&gt;.docx&lt;/code&gt; documents. I use them extensively to study and rewrite my notes, write essays, outline a presentation and all the other things a student could do. To keep everything organized, I always use the same style for my notes (the fonts, colors, tables, headings are the same). Before pyÉtude, I had a template &lt;code&gt;.dotx&lt;/code&gt;, a solution that Microsoft &lt;em&gt;believes&lt;/em&gt; solves this problem, but it was &lt;em&gt;painful&lt;/em&gt;. Bugs everywhere, inconsistent style, problem while working on iPad ― main device when not at home.&lt;/p&gt;

&lt;h3&gt;
  
  
  How it works
&lt;/h3&gt;

&lt;p&gt;I first thought that I should use a library to create my document, it would be quick and future proof ― and most importantly reinforcing the stereotype of importing things in &lt;code&gt;python&lt;/code&gt;. However, the current libraries weren't extensive enough to let me create styles with good formatting. I then decided to use another way: modify a current word document with values. This meant I had to have a general idea of how a Word document works ― how to unpack it, modify it and repack it.&lt;/p&gt;

&lt;h2&gt;
  
  
  How it looks
&lt;/h2&gt;

&lt;p&gt;I've tried to make pyÉtude as simple as possible, while still keeping all the features I wanted to have.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--vd4E2CM4--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/mh8evlcofte6snydmpdl.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--vd4E2CM4--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/mh8evlcofte6snydmpdl.png" alt="pyÉtude"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;As for the document in itself, this is the template that I use the most.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--T6EUdbXt--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/e9cqpjeag55a1i2lj5xt.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--T6EUdbXt--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/e9cqpjeag55a1i2lj5xt.png" alt="Example Document"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Features
&lt;/h2&gt;

&lt;p&gt;As said before, I've made pyÉtude while using it. This means that during the multiple refactors I've made, I included some nice-to-have. Here are some of my favorites:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Store your name and grade so you only need to write it the first time you use the software&lt;/li&gt;
&lt;li&gt;Create personalized classes with their own full name, short name and folder path&lt;/li&gt;
&lt;li&gt;Automatically create the file in the class folder and name it accordingly (if &lt;code&gt;ART-CHP1.docx&lt;/code&gt; already exists, it suggest to use &lt;code&gt;ART-CHP2.docx&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;Use multiple file templates depending on your need (study notes, essay, oral presentation...)&lt;/li&gt;
&lt;li&gt;Cross platform support on desktop (Windows, Linux, macOS) ― with a web version in development&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  🚀 Progress
&lt;/h2&gt;

&lt;p&gt;pyÉtude is one of my proudest project since I learned so much and when I learned a new thing elsewhere, I used it on pyÉtude.&lt;/p&gt;

&lt;h3&gt;
  
  
  Command Line Interface
&lt;/h3&gt;

&lt;p&gt;pyÉtude started as a simple command line interface, it was ugly, and some of my favorites features weren't there, but it was still a huge time saver.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--SEYdNPP8--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/2if2chc2lnnqm0pc673u.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--SEYdNPP8--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/2if2chc2lnnqm0pc673u.png" alt="CLI"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  First GUI
&lt;/h3&gt;

&lt;p&gt;This was the first graphical interface I've seriously made. It was made with &lt;code&gt;tkinter&lt;/code&gt; and used some hacky ways to get features like placeholders in entries.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--TGhQT6Mp--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/e4r8elcs9xikgqezzq3l.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--TGhQT6Mp--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/e4r8elcs9xikgqezzq3l.png" alt="tkinter"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  PyQt5
&lt;/h3&gt;

&lt;p&gt;The current version of the software. It contains some nice extra features like tabs, calendar, easy file management and also a lot more eye appealing than the previous one.&lt;/p&gt;

&lt;h3&gt;
  
  
  Future
&lt;/h3&gt;

&lt;p&gt;I'm currently planning on making pyÉtude a small website (making it private however) so I can quickly make documents when I'm not in front of my computer. Meanwhile, I've created a &lt;code&gt;Jupyter&lt;/code&gt; notebook that I can access everywhere. It is rough and not as complete as the desktop version, but good enough.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--sM8OZA4o--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/ltxgroomqgroffxjdso0.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--sM8OZA4o--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/ltxgroomqgroffxjdso0.gif" alt="jupyter"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  ⛏️ Built With
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://code.visualstudio.com/"&gt;Visual Studio Code&lt;/a&gt; to write, modify and debug&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://cmder.net/"&gt;λ cmder Console Emulator&lt;/a&gt; as a terminal, but also to test snippets and ideas in REPL&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://products.office.com/fr-ca/word"&gt;Microsoft Word 365&lt;/a&gt; to create the templates included&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://www.python.org/"&gt;Python 3&lt;/a&gt; to compile and run the software

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://build-system.fman.io/qt-designer-download"&gt;Qt Designer&lt;/a&gt; to create the software UI&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://www.riverbankcomputing.com/software/pyqt/intro"&gt;PyQt5&lt;/a&gt; to bind the UI with code, providing interaction&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://omz-software.com/pythonista/"&gt;Pythonista&lt;/a&gt; as a full Python IDE on iOS, great when I wanted to make quick modifications while in transit&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://git-scm.com/"&gt;Git&lt;/a&gt; as a version control tool

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://github.com/"&gt;GitHub&lt;/a&gt; to organize, publish and save this project&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://workingcopyapp.com/"&gt;Working Copy&lt;/a&gt; to quickly push modifications and ideas to GitHub using my iPad when I was in transit&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://www.termius.com/"&gt;Termius&lt;/a&gt; as a great cross platform SSH terminal&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;
&lt;/ul&gt;


&lt;div class="ltag-github-readme-tag"&gt;
  &lt;div class="readme-overview"&gt;
    &lt;h2&gt;
      &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--vWogaON8--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://practicaldev-herokuapp-com.freetls.fastly.net/assets/github-logo-28d89282e0daa1e2496205e2f218a44c755b0dd6536bbadf5ed5a44a7ca54716.svg" alt="GitHub logo"&gt;
      &lt;a href="https://github.com/BourgonLaurent"&gt;
        BourgonLaurent
      &lt;/a&gt; / &lt;a href="https://github.com/BourgonLaurent/pyEtude"&gt;
        pyEtude
      &lt;/a&gt;
    &lt;/h2&gt;
    &lt;h3&gt;
      📝 Programme Python qui permet de créer des documents personalisés.
    &lt;/h3&gt;
  &lt;/div&gt;
&lt;/div&gt;


</description>
      <category>octograd2020</category>
      <category>githubsdp</category>
      <category>productivity</category>
      <category>python</category>
    </item>
  </channel>
</rss>
