ClearPath is a web Project Management tool to help Project Management Professional manage projects and teams of any demand and size respectively.
- Installation
- Usage
- Read Me
- Installation-MacOs
- Installation-Windows
- Continue
- Commands used-OS X or Linux
- Commands used-Windows
- Libraries
- Best Practices
- Git commit message types
- Streamlining Workflow with Git Flow Branch Naming Conventions
- Contribution
- Additional Information (Optional)
Here are the steps to install and run the project:
- Clone the repository ...
- Checkout to "feature" branch
- Install dependencies ...
- Run the project ...
Here's how to use the project functionalities:
- ... (instructions with code snippets or screenshots)
- Read this instructions carefully:
Always refer to the Django Installation
- Clone this repo and navigate to gospives folder
- Set Up Virtual Environment:
python3 -m venv venv
- Activate Virtual Environment:
source venv/bin/activate
- Clone this repo and navigate to Backend folder
- Set Up Virtual Environment:
python -m venv venv
- Activate Virtual Environment:
source venv\Scripts\activate.bat
- Install all dependecies:
pip install -r requirements.txt
- Create
.env
file in the root folder. - Perform Initial Database Migrations:
python3 manage.py migrate
- (Optional) Create Superuser:
python3 manage.py createsuperuser
- Run Development Server:
python3 manage.py runserver
python3 -m venv venv
source venv/bin/activate
python -m pip install --upgrade pip
django-admin startproject clearpath_home .
python3 manage.py migrate
python3 manage.py runserver
python3 manage.py createsuperuser
python3 manage.py startapp [AppName]
- Add these dependencies to your requirements.txt file:
pip freeze > requirements.txt
- Protect SECRET_KEYS -
pip install python-dotenv
python -m venv venv
source venv\Scripts\activate.bat
django-admin startproject clearpath_home .
python manage.py migrate
python manage.py runserver
python manage.py createsuperuser
python manage.py startapp [AppName]
- Add these dependencies to your requirements.txt file:
pip freeze > requirements.txt
- Protect SECRET_KEYS -
pip install python-dotenv
-
Keep Django Updated: Always stay on the latest version of Django. Regularly update your project to benefit from security fixes and improvements. Major releases occur approximately every 9 months, with minor releases addressing security and bugs almost monthly (https://learndjango.com/tutorials/django-best-practices-security)
-
Environment Variables:
- Use environment variables to manage settings between local development and production environments. These variables allow you to switch configurations seamlessly.
- Consider using packages like
environs
to handle environment variables effectively.
-
DEBUG Mode: In your
settings.py
, ensure that theDEBUG
setting is set toFalse
in production. Debug mode provides detailed error pages, which can be a security risk if exposed publicly. Read more on: (https://learndjango.com/tutorials/django-best-practices-security) -
SECRET_KEY:
- Keep the
SECRET_KEY
confidential. It’s used for cryptographic signing and should never be shared or exposed. - Generate a strong, random
SECRET_KEY
during project setup. - To Generate a New
SECRET_KEY
in Django, follow the instructions provided on this website: (https://www.makeuseof.com/django-secret-key-generate-new/)
- Keep the
-
Authorization and Authentication:
- Implement robust authorization and authentication mechanisms using Gmail, iCloud and other Social Media platforms.
- Avoid custom authentication solutions unless necessary.
-
Secure Configurations:
- Properly configure the application settings. Guard against common vulnerabilities like cross-site scripting (XSS) and cross-site request forgery (CSRF).
- Use HTTPS to encrypt data in transit.
-
Rate Limiting and Brute-Force Protection:
- Implement rate limiting to prevent brute-force attacks.
- Consider using packages like
django_ratelimit
ordjango-axes
.
-
Third-Party Dependencies:
- Regularly review and update third-party packages. Vulnerabilities in dependencies can impact the application’s security.
- Use tools like
pip-tools
to manage dependencies efficiently.
-
Security Audits:
- Perform automated security audits regularly. Tools like
Lynis
can help identify potential issues. - Monitor logs and track suspicious activity.
- Perform automated security audits regularly. Tools like
-
Database Security:
- Secure your database connections. Use strong passwords and restrict access.
- Avoid using default database credentials.
- feat: Introducing new features or significant improvements.
- fix: Bug fixes that resolve issues in your code.
- docs: Updates or additions to documentation.
- style: Cosmetic changes that don't affect code functionality (like formatting).
- refactor: Code changes that neither fix a bug nor add a feature but improve structure.
- test: Everything about testing - adding or fixing tests.
- chore: Routine tasks or updates to the build process.
- perf: Enhancements that improve performance.
- ci: Modifications related to CI/CD processes.
- build: Changes affecting the build system or external dependencies.
- revert: Undoing previous changes.
Git Flow is a branching strategy that helps manage and structure various phases of a project.
- master: The source of truth for production-ready states.
- develop: The integration branch for development work.
- feature/: For developing new features, e.g., feature/add-login.
- release/: Preparing a new production release, e.g., release/1.2.0.
- hotfix/: Quick fixes for the production version, e.g., hotfix/critical-login-bug.
- support/: Long-term support for older versions, e.g., support/1.x.
- bugfix/: For specific bug fixes (optional), e.g., bugfix/login-error.
Please refer to the CONTRIBUTING.md for guidance.
- website: https://clearpath.com
- E-mail: [email protected]