quentinhaenn/jdd

★ 1Forks 0PythonGitHub ↗Compare

README

MIMME JDD HELP PACKAGE

This package is made to help MIMME's JDDs organization.

Table of Content

Quick Overview

You'll have to deal with hundreds participants and same amount of badges, presentations and posters, you definitely don't want to deals with by hand. This package is made for you !

You'll be able to automatically build badges and signing pages relative to the list of participants provided by MIMME secretary, make stats and even make a random passage order for the presentations !

Functionalities :

  1. Auto badges
  2. Auto signing pages
  3. Auto order for presentations
  4. Auto QR-codes for important files (book of abstract and conf program)
  5. Auto stats

Requirements

What's needed to make this work.

  • Python >= 3.7
  • Pandas up-to-date
  • openpyxl up-to-date
  • matplotlib up-to-date
  • qrcode up-to-date
  • A complete and functional LaTeX distribution (TeXLive for instance)

You don't need to install them manually, pip will do it for you when installing, but Python and pip are mandatory to do so.

Installing Python

Installation

Download .zip archive from github(insert link) or clone the repository on your machine.

In further release we plan to make it available on PyPi projects to make it available via pip installation. See Next Steps for more informations

Manual installation of dependencies

If you do not use pip and PyPi repository to get this package, please remember that you do need to manually install every dependency needed. Use the following code in command prompt :

python3.7 -m pip install setuptools pandas seaborn matplotlib os colorama openpyxl pytest qrcode

This will install all dependencies for you.

Note

You can modify the python version you're using e.g. : python3.10 or python 3.11.

Note

This will do the magic whether on Linux or Windows. You also can use python alone on windows is set on PATH variable.

Tests

To ensure all is set up correctly, please run :

pytest

If every test is passed, then everything is set up !

How to

This section includes most of useful commands to help you manage participants in MIMME JDDs. Refer to the correct section for what you need.

Preriquisites

In order to generate all files you need with this module, there are little prerequisites especially concerning input files and where you put them. You must use this file tree organization, considering you have a list of all attendees in a file named participants-2024.xlsx :

jdd/
├── CODE_OF_CONDUCT.md
├── CONTRIBUTING
├── LICENCE
├── out/ #<-- where the generated files will go.
│   └── tex/ #<-- is where generated tex files will go.
├── README.md
└── src/ #<-- where all code is written
    ├── jdd/
    │   ├── main.py #<-- does all the magic
    │   │   
    │   └── tools/ #<-- where all intelligent code is.
    ├── resource/ #<-- where you put your xlsx file, and where csv files will go.
    │   └── participants-2024.xlsx #<-- your input file
    └── tests/ #<-- where tests are performed

Important

Moreover, be sure your xlsx file strictly follows the structure of the Participants JDD sample.xlsx sample provided with this archive. In case not, this script will not perform anything and will crash.

Now you may have everything set up to generated everything.

Generate Everything

To generate every single file that script is capable to, simply use :

python<version> src/jdd/main.py <name_of_excel_file>

This will generate noms_complets.csv, noms_ensma.csv, noms_up.csv, badges.tex, list_ensma.tex, list_up.tex, stats.txt, Stats Participants JDD.png and Stats presentations JDD.png files.

Note

All .csv files are located in src/resource dir because they are reused by scripts as resources. All other files created are located in out/ directory.

Example

Considering you have python 3.7 installed and participants-2024.xlsx as input file :

python3.7 src/jdd/main.py participants-2024.xlsx

This leads to this prompt :

Make stats

This is used to make some stats about JDDs participants :

  • Number of attendees
  • Number of expected posters
  • Number of expected presentations
  • Stats on each laboratory represented

Use the following code line in command prompt to launch it :

python<version> src/jdd/main.py <name_of_excel_file> -ms

Or alternatively :

python<version> src/jdd/main.py <name_of_excel_file> --make-stats

Example of stats generation

The following prompt is an example of statistics generation.

Make badges

To make the badges.tex file used to automatically make badges with LaTeX, use the following prompt :

python<version> src/jdd/main.py <name_of_excel_file> -b

Or alternatively :

python<version> src/jdd/main.py <name_of_excel_file> --badges

Example of badges generation

The following prompt is an example of badges generation.

Make signing pages

To make the list_ensma.tex and list_up.tex files used to automatically make signing lists with LaTeX, use the following prompt :

python<version> src/jdd/main.py <name_of_excel_file> -s

Or alternatively :

python<version> src/jdd/main.py <name_of_excel_file> --signing-lists

Example of signing pages generation

The following prompt is an example of signing pages generation.

Make QR Codes

Considering you have several documents accessible via url links, you can make your QR codes using this module.

First, you have to invoke the proper command using the following command line :

python<version> src/jdd/main.py -qr

Then the console will ask you to type the url(s) you want to transform into QR codes as follow :

Combining Commands

If you want to combine two commands, use the proper options to do so.

Example of combining commands

You want to generate badges and signing lists but no stats :

python<version> src/jdd/main.py <name_of_excel_file> -b -s

Or alternatively :

python<version> src/jdd/main.py <name_of_excel_file> --badges --signing-lists

Next steps

The next steps for this project are :

  • Finish README
  • Color prints
  • Make a stat file with all stats included
  • Make an out directory for all files created
  • Create the QR code functionality -> dedicated issue
  • Create the auto-order functionality -> dedicated issue
  • Make all unit tests
  • Setup CI/CD
  • Deploy
  • Show examples
  • Make it available on PyPi

You also can follow the project's progression on issue tracker page.

Contributing

There are many ways to contribute to this. See CONTRIBUTING.md file for more informations.

Authors

Contributors

quentinhaenn

Issues