{"id":16865835,"url":"https://github.com/hellock/labman","last_synced_at":"2025-03-18T17:38:38.106Z","repository":{"id":189833717,"uuid":"65531263","full_name":"hellock/labman","owner":"hellock","description":"A lab management system based on Flask.","archived":false,"fork":false,"pushed_at":"2016-08-19T14:33:46.000Z","size":7498,"stargazers_count":14,"open_issues_count":0,"forks_count":3,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-01-24T21:12:44.485Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"HTML","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/hellock.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null}},"created_at":"2016-08-12T07:04:10.000Z","updated_at":"2025-01-24T16:22:05.000Z","dependencies_parsed_at":"2023-08-22T00:57:10.597Z","dependency_job_id":null,"html_url":"https://github.com/hellock/labman","commit_stats":null,"previous_names":["hellock/labman"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hellock%2Flabman","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hellock%2Flabman/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hellock%2Flabman/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hellock%2Flabman/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/hellock","download_url":"https://codeload.github.com/hellock/labman/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":244271846,"owners_count":20426624,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-10-13T14:48:37.713Z","updated_at":"2025-03-18T17:38:38.085Z","avatar_url":"https://github.com/hellock.png","language":"HTML","funding_links":[],"categories":[],"sub_categories":[],"readme":"# LabMan\n\n## Overview\nLabMan is a laboratory management system originally designed for [CUHK MMLab](http://mmlab.ie.cuhk.edu.hk/). This web-based system provides convenience for:\n- Member management\n- Publication management\n- Facility management (not completed)\n- Information statistics\n\n###Screenshots\n![screenshot](https://github.com/hellock/labman/blob/master/app/static/img/screenshots.jpg)\n\n## Requirements\n- Python 3.3+ (Python 2.7+ should be ok but not tested)\n- MongoDB (version 3.2+ recommended)\n\n## Run\n### Create a virtual enrironment (optional but recommended)\n``` shell\n# For OSX with python3 installed through brew\nvenv ./venv\nsource venv/bin/activate\n# For Linux\npython3 -m venv ./venv\n```\nThere may be errors thrown out when creating virtual environment on some distributions of Linux, you can first create it without pip, then install pip manually, taking Ubuntu 16.04 LTS for example.\n``` shell\nsudo apt-get install python3-venv\npython3 -m venv --without-pip ./venv\nsource venv/bin/activate\nwget https://bootstrap.pypa.io/get-pip.py\npython3 get-pip.py\ndeactivate\nsource venv/bin/activate\n```\n\n### Install dependencies\n- Python dependencies\n\n    ``` shell\n    pip3 install -r requirements.txt\n    ```\n\n- MongoDB\n\n    ``` shell\n    brew install mongodb # For OSX\n    sudo apt-get install mongodb # For Ubuntu\n    ```\n\n### Modify the configuration file\nFirst rename the config file.\n``` shell\ncp app/config_default.py app/config.py\n```\nThe configuration file is like the following, modify it as you want.\n``` python\n# Global configuration variable\nCONFIG = {\n    # service url starting with http\n    'url': 'http://localhost',\n    # lab name will be shown on the signin page\n    'lab_name': 'Multimedia Laboratory',\n    # database info\n    'db': {\n        'ip': 'localhost',\n        'port': 27017,\n        'name': 'mmlab'\n    },\n    # log configuration\n    'log': {\n        # logging levels: 'DEBUG', 'INFO', 'WARNING', 'ERROR', 'CRITICAL'\n        'level': 'INFO',\n        # whether to use capped collections to support high-throughput operations\n        'capped': False\n    },\n    # mail server settings, used for sending notification mails, disabled if empty\n    'mail': {\n        # 'server': 'localhost',\n        # 'port': 465,\n        # 'use_ssl': True,\n        # 'address': 'xxx@example.com',\n        # 'password': ''\n    },\n    # `mode` can be either 'debug' or 'deploy'\n    'run_mode': 'debug',\n    # positions to be chosen from, list of tuples\n    'positions': [\n        ('1', 'Professor'),\n        ('2', 'Postdoctoral Researcher'),\n        ('3', 'PhD'),\n        ('4', 'MPhil'),\n        ('5', 'Master'),\n        ('6', 'Research Assistant'),\n        ('7', 'Intern'),\n        ('0', 'Others'),\n    ],\n    # indicate which positions belong to supervisors\n    'supervisor_positions': ['1'],\n    # predefined conference names that will be shown as select options\n    'conferences': [\n        'The IEEE Conference on Computer Vision and Pattern Recognition (CVPR)',\n        'The IEEE International Conference on Computer Vision (ICCV)',\n        'European Conference on Computer Vision (ECCV)',\n        'Conference on Neural Information Processing Systems (NIPS)',\n        'The International Conference on Machine Learning (ICML)',\n        'AAAI Conference on Artificial Intelligence'\n    ],\n    # predefined journal names that will be shown as select options\n    'journals': [\n        'IEEE Transactions on Pattern Analysis and Machine Intelligence (PAMI)',\n        'IEEE Transactions on Image Processing (TIP)',\n        'International Journal of Computer Vision (IJCV)'\n    ]\n}\n```\n\n### Start mongodb service\nYou can either use the default directory to store the database data or specify a directory to store it.\n``` shell\nmkdir dbdata\nmongod --dbpath dbdata\n```\n\n### Init database\n``` shell\n./initdb.py\n```\nThis script will create databases as well as an initial admin account with random password, the output should be like the following:\n```\nInitializing the database...\nInitialization done\nInitial admin username: admin, password: ln8nWjX8\n```\n\n### Run the app\n``` shell\n./run.py\n```\n\n## TODO list\n- [x] Use configuration file\n- [x] Register page\n- [x] Check name collision when adding a new user or registering\n- [ ] Implement \"remember me\" checkbox\n- [x] Upload avatar\n- [x] Change password\n- [x] Admin settings, such as set the auth level of members\n- [x] Select supervisor instead of inputting\n- [x] Show all members according to the admission year and position\n- [x] Make supervisor on the member overview page clickable\n- [ ] Delete publications\n- [x] Support submitting forms besides bibtex to add publications\n- [ ] Notification module\n- [x] Log users' activities\n- [x] Search box\n- [ ] Facility management\n- [x] Show statistics\n- [x] Support candidates and alumni\n- [x] Design an icon for LabMan\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhellock%2Flabman","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fhellock%2Flabman","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhellock%2Flabman/lists"}