To optimize my project management for internal projects, I created "Projets", an interface to manage my active projects on Github.
Github is my unique service to host the code of my projects, and I use Github too to manage my projects using issues and milestones. I really love Github interface, but I wanted specific views to display information about my active projects. These new interfaces will help me to optimize my project management (and obviously increase my productivity).
I just needed 3 new view specifics of my needs:
So, I made these simple interfaces using Bootstrap 4.
I use PHP language with my starter kit Icarus Slim on this project. Icarus Slim is a starter kit for Slim framework I created to make and deploy fast and simple web applications.
I don't use the classic MySQL database on this project. I just use json files to save my repositories (and other information).
I created a json file with the repositories I wanted to display in my web application, containing:
{
"websites": {
"cba85": [
"clementbarbaza",
"appstraction",
"coolcolors",
...
]},
"applications": {
"cba85":[
"compta",
"projets",
...
]},
...
}
I wanted to customized issues labels to display specific colors and emoji for each label.
So, I created another json file containing the issue labels I use and I want to customize:
{
"bug": {
"name": "Bug",
"color": "#ee0701",
"icon": "🐛"
},
"enhancement": {
"name": "Enhancement",
"color": "#84b6eb",
"icon": "❇️"
},
...
}
If you need a very simple database using PHP, use json files:
$json = file_get_contents('projects.json');
$data = json_decode($json, true);
To grab the information I need about my projects, I use Github API.
But I made a lot of API requests on the homepage listing all the projects, and on the milestone page, so these pages were slow to display.
So I decided to just call the Github API to get the new information once a day. To do that, I created a _last_github_api_call
file containing the date of the last Github API update.
If the date contained in this file is not today, I call Github API and save all the information in a file, one per project, and update the _last_github_api_call
file. If the date is the same, I don't call Github API, I use instead the information stocked in these "cache" files.
I use Icarus Electron to convert my website into an app.
Icarus Electron is a starter kit to create a web view of a website in a desktop app.
I use this website on my computer only. It's a local website, hosted on my computer. I use a specific domain name to access this website: projects.test
.
I now have a "Projets" app in my computer dedicated to manage my active projects.
I tried to show you the main features of this project I made to better manage my projects. I tried to describe the best I can the technical tips I use on this project to do something simple and fast.