Skip to content

Commit

Permalink
🎉 ✨ Initial commit of SkinvestigatorAI project
Browse files Browse the repository at this point in the history
This commit includes the core implementation of the SkinvestigatorAI project, with data scraper, model training, and web application components. The project is structured using Pyramid, TensorFlow, and Keras libraries for an efficient and user-friendly skin cancer detection platform. The commit does not include tests, which will be added in subsequent commits. 🚀 🐳 💚
  • Loading branch information
Thomasbehan committed Apr 16, 2023
1 parent a096b38 commit efebd12
Show file tree
Hide file tree
Showing 41 changed files with 1,275 additions and 126 deletions.
2 changes: 2 additions & 0 deletions .coveragerc
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
[run]
source = skinvestigatorai
35 changes: 35 additions & 0 deletions .github/workflows/test.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
name: Automated Testing

on:
pull_request:
branches:
- main

jobs:
build:

runs-on: ubuntu-latest
strategy:
matrix:
python-version: ["3.9", "3.10", "3.11"]

steps:
- uses: actions/checkout@v3
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v4
with:
python-version: ${{ matrix.python-version }}
- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install ruff pytest
if [ -f requirements.txt ]; then pip install -r requirements.txt; fi
- name: Lint with ruff
run: |
# stop the build if there are Python syntax errors or undefined names
ruff --format=github --select=E9,F63,F7,F82 --target-version=py37 .
# default set of ruff rules with GitHub Annotations
ruff --format=github --target-version=py37 .
- name: Test with pytest
run: |
pytest
148 changes: 24 additions & 124 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,129 +1,29 @@
# Byte-compiled / optimized / DLL files
__pycache__/
*.py[cod]
*.egg
*.egg-info
*.pyc
*$py.class

# C extensions
*.so

# Distribution / packaging
.Python
*~
.coverage
coverage.xml
build/
develop-eggs/
dist/
downloads/
eggs/
.eggs/
lib/
lib64/
parts/
sdist/
var/
wheels/
pip-wheel-metadata/
share/python-wheels/
*.egg-info/
.installed.cfg
*.egg
MANIFEST

# PyInstaller
# Usually these files are written by a python script from a template
# before PyInstaller builds the exe, so as to inject date/other infos into it.
*.manifest
*.spec

# Installer logs
pip-log.txt
pip-delete-this-directory.txt

# Unit test / coverage reports
htmlcov/
.tox/
.nox/
.coverage
.coverage.*
.cache
nosetests.xml
coverage.xml
*.cover
*.py,cover
.hypothesis/
.pytest_cache/

# Translations
*.mo
*.pot

# Django stuff:
*.log
local_settings.py
db.sqlite3
db.sqlite3-journal

# Flask stuff:
instance/
.webassets-cache

# Scrapy stuff:
.scrapy

# Sphinx documentation
docs/_build/

# PyBuilder
target/

# Jupyter Notebook
.ipynb_checkpoints

# IPython
profile_default/
ipython_config.py

# pyenv
.python-version

# pipenv
# According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control.
# However, in case of collaboration, if having platform-specific dependencies or dependencies
# having no cross-platform support, pipenv may install dependencies that don't work, or not
# install all needed dependencies.
#Pipfile.lock

# PEP 582; used by e.g. github.com/David-OConnor/pyflow
__pypackages__/

# Celery stuff
celerybeat-schedule
celerybeat.pid

# SageMath parsed files
*.sage.py

# Environments
.env
.venv
env/
venv/
ENV/
env.bak/
venv.bak/

# Spyder project settings
.spyderproject
.spyproject

# Rope project settings
.ropeproject

# mkdocs documentation
/site

# mypy
.mypy_cache/
.dmypy.json
dmypy.json

# Pyre type checker
.pyre/
env*/
tmp/
Data*.fs*
*.sublime-project
*.sublime-workspace
.*.sw?
.sw?
.DS_Store
coverage
test
*.sqlite
/data/
/logs/
.idea/
/venv/
# prevent models being commited to github
**/*.h5
*.h5
4 changes: 4 additions & 0 deletions CHANGES.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
0.0
---

- Initial version.
36 changes: 36 additions & 0 deletions CODE_OF_CONDUCT.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
# Code of Conduct
We are committed to creating an inclusive and welcoming environment for all contributors to the SkinVestigatorAI Project. To ensure that our community is respectful and inclusive, we have established the following code of conduct. By participating in our community, you agree to abide by this code of conduct.

## Our Standards
- We welcome contributions from all individuals, regardless of their age, gender, race, ethnicity, national origin, religion, sexual orientation, or disability status.
- We are committed to creating a safe and respectful environment for all community members.
- We expect all community members to treat each other with respect and dignity, regardless of their personal views or opinions.
- We will not tolerate any form of harassment, discrimination, or bullying.
- We will not tolerate any form of hate speech or offensive language.
- We encourage constructive criticism and feedback, but we will not tolerate personal attacks or insults.

## Definitions
- Bullying:
We define "bullying" as any behavior that is intended to harm, intimidate, or harass an individual or group of individuals. This can include physical, verbal, or emotional abuse, as well as online harassment or cyberbullying. We do not tolerate any form of bullying in the SkinVestigatorAI Project community.
- Harassment:
We define "harassment" as any behavior that creates an intimidating, hostile, or offensive environment for an individual or group of individuals. This can include physical, verbal, or written actions, such as unwanted physical contact, stalking, or repeatedly sending unwanted messages.
- Discrimination:
We define "discrimination" as treating individuals differently or unfairly based on their age, gender, race, ethnicity, national origin, religion, sexual orientation, or disability status. Discrimination can take many forms, including exclusion, prejudice, and bias.
- Hate Speech:
We define "hate speech" as any speech or expression that promotes hatred, violence, or discrimination against an individual or group of individuals based on their age, gender, race, ethnicity, national origin, religion, sexual orientation, or disability status.
- Offensive Language:
We define "offensive language" as any language or expression that is insulting, disrespectful, or discriminatory toward an individual or group of individuals based on their age, gender, race, ethnicity, national origin, religion, sexual orientation, or disability status.

In the SkinVestigatorAI community, we understand that intention is key when it comes to breaches of the code of conduct. While we take all breaches seriously, we also recognize that mistakes can happen and that individuals may not always intend to cause harm. As such, we will always take into account the intention of the individual involved when determining the appropriate course of action.

## Our Responsibilities
As community leaders, we are responsible for enforcing the standards set forth in this code of conduct. We will take appropriate action to address any violations of this code of conduct, which may include:

- Removing any content that violates this code of conduct.
- Banning any community member who violates this code of conduct.
- Reporting any violations of this code of conduct to the appropriate authorities.
## Reporting Violations
If you witness or experience any violations of this code of conduct, please report them immediately to the project maintainers at [Report a Violation](https://forms.gle/uKXt664q6me6SQcKA). All reports will be kept confidential and will be addressed promptly.

## Attribution
This code of conduct is adapted from the Contributor Covenant, version 2.0, available at https://www.contributor-covenant.org/version/2/0/code_of_conduct.html.
39 changes: 39 additions & 0 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
# Contributing to the SkinVestigatorAI Project
We welcome and appreciate your contributions to this project. By contributing, you can help improve the accuracy and effectiveness of our AI model.

Before getting started, please read our code of conduct[CODE_OF_CONDUCT.md](CODE_OF_CONDUCT.md) and license. By contributing to this project, you agree to abide by the terms and conditions outlined in these documents.

# How to Contribute
There are several ways you can contribute to this project, including:

- Reporting bugs or issues
- Suggesting new features or improvements
- Submitting code changes or enhancements

To get started, please follow these steps:

1. Fork the repository and create a new branch for your changes.
2. Make your changes and commit them with clear and concise commit messages.
3. Test your changes thoroughly to ensure they work as intended.
4. Submit a pull request with a detailed description of your changes and the problem they solve.
# Reporting Bugs or Issues
If you find a bug or issue with the AI model, please report it by opening a new issue in our repository. Be sure to include the following information:

- A detailed description of the issue
- Steps to reproduce the issue
- Screenshots or error messages, if applicable
# Suggesting New Features or Improvements
If you have an idea for a new feature or improvement to the AI model, please open a new issue in our repository. Be sure to include the following information:

- A detailed description of the feature or improvement
- Any relevant use cases or scenarios
- Any potential challenges or considerations
# Submitting Code Changes or Enhancements
If you'd like to contribute code changes or enhancements to the AI model, please follow these guidelines:

- Write clear, concise, and well-documented code.
- Write tests to ensure your changes work as intended.
- Follow the existing coding style and conventions.
- Include a detailed description of your changes in your pull request.

Thank you for your contributions to this project!
34 changes: 34 additions & 0 deletions Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
# Official NVIDIA CUDA base image with Python 3.9
FROM nvidia/cuda:11.6.2-runtime-ubuntu20.04

# Set the working directory to /app
WORKDIR /app

# Copy the current directory contents into the container at /app
COPY . /app/

# Install any needed packages and run setup.py
RUN apt-get update
RUN apt-get install -y --no-install-recommends python3.9 python3-pip python3.9-dev
RUN python3.9 -m pip install --upgrade pip
RUN python3.9 -m pip install --trusted-host pypi.python.org -r requirements.txt
RUN python3.9 setup.py install
RUN apt-get clean
RUN rm -rf /var/lib/apt/lists/*

# Add a new user to avoid running the application as root
RUN useradd -ms /bin/bash appuser
USER appuser

# Make port 6543 available to the world outside this container and 6006 for TensorBoard
EXPOSE 6543 6006

# Define environment variable
ENV NAME World

# Ensure the pserve command is in the PATH
ENV PATH="/app/.local/bin:${PATH}"

# Run command when the container launches
#CMD ["pserve", "development.ini", "--reload"]
CMD ["tail", "-f", "/dev/null"]
5 changes: 5 additions & 0 deletions MANIFEST.in
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
include *.txt *.ini *.cfg *.rst
recursive-include skinvestigatorai *.ico *.png *.css *.gif *.jpg *.pt *.txt *.mak *.mako *.js *.html *.xml *.jinja2
recursive-include tests *
recursive-exclude * __pycache__
recursive-exclude * *.py[co]
Loading

0 comments on commit efebd12

Please sign in to comment.