The CRM system is a comprehensive customer relationship management system designed to manage customers, sales opportunities, tasks, and generate reports. The system is developed using Vue.js for the frontend, Django for the backend, PostgreSQL as the database, and Jenkins for CI/CD automation.
- Frontend: Vue.js
- Backend: Django
- Database: PostgreSQL
- CI/CD: Jenkins
The project consists of two main components: the frontend and the backend.
The frontend is a Vue.js application responsible for providing the user interface and interactions. To run the frontend, make sure to follow these steps:
- Install Node.js and npm.
- Navigate to the
crm_frontend
directory. - Run
npm install
to install all frontend dependencies. - Execute
npm run serve
to start the frontend development server.
The backend is developed using the Django framework and handles business logic, database interactions, and API endpoints. To run the backend, follow these steps:
- Navigate to the
crm_backend
directory. - Install Python and a virtual environment if not already installed.
- Create and activate a virtual environment.
- Run
pip install -r requirements.txt
to install backend dependencies. - Run
python manage.py migrate
to apply database migrations. - Execute
python manage.py runserver
to start the backend server.
The project uses PostgreSQL as the database management system. In the CI/CD pipeline, we use Jenkins to automate database deployment. The following tasks are configured in Jenkins:
- Start the PostgreSQL container.
- Wait for the PostgreSQL container to start and be ready to accept connections.
We use Jenkins for continuous integration and continuous delivery. The pipeline configuration can be found in the Jenkinsfile
and includes the following stages:
- Start the PostgreSQL container.
- Test the backend.
- Build a Docker image for the Django application.
- Run the Docker container for the Django application.
- Apply database migrations.
To enhance our CI/CD process, we have added a Docker run command to launch the Jenkins container with additional configurations. This command is as follows:
docker run --rm -u root -p 8081:8080 -v jenkins-data:/var/jenkins_home -v //var/run/docker.sock:/var/run/docker.sock myjenkins:2.41
Note: Here,
myjenkins:2.41
is an updated version of Jenkins based onjenkinsci/blueocean
.
Please note that this is a sample pipeline configuration and can be further customized based on project requirements. Additionally, ensure that Jenkins security is configured, and sensitive information is stored as Jenkins credentials.