SoftServe Academy is a collaborative platform designed to create, evaluate, curate, organize, and share personalized learning paths tailored for the technology industry. In an era where continuous and autonomous learning is crucial, this platform bridges the gap by offering structured, curated, and user-specific educational resources that go beyond simple lists of links. By leveraging advanced algorithms, the platform generates customized learning paths based on individual users' knowledge, learning goals, time availability, and content preferences.
Accesible via: http://34.72.154.173/
DockerHub Repository: https://hub.docker.com/repository/docker/quitotactico/softserve-academy/general
- Software Developers
- Programmers
- Technology Students
- Professors
- Mentors
- Content Curators
Users can explore personalized learning paths, consume high-quality content, and track their progress, while content curators ensure the relevance and quality of the educational materials. The platform is built using modern technologies such as a Python-based backend with Django and an intuitive UI using Django Template Language (DTL).
The proposed system is a collaborative learning platform aimed at the creation, evaluation, curation, organization, and dissemination of learning paths in the technology sector. The system will allow users to access external educational resources, organize these resources into personalized learning paths, and assess their progress through interactive activities.
- Creation of Learning Paths: Users will be able to create personalized learning paths that integrate external content, such as videos and tutorials, through links or embedded content.
- Content Curation: Teachers, mentors, and content curators will be able to select, evaluate, and organize external educational resources, ensuring their relevance and quality.
- Progress Evaluation: Users will be able to perform interactive assessments to measure their understanding of the material and receive feedback based on their performance.
- Recommendation Generation: The platform will generate learning path recommendations based on the user's profile, preferences, and progress.
- Intuitive User Interface: The system will feature a user-friendly interface, developed with Django Template Language (DTL), allowing for easy navigation and use.
- Dependence on External Content: The system will not host proprietary content but will rely entirely on links to tutorials, videos, and other external educational resources.
- No Certification Integration: External evaluation and certification platforms will not be included; however, their integration may be considered in future versions.
The MVP will include the basic functionalities necessary to allow users to create and follow personalized learning paths, curate and organize external content, and assess their progress through interactive activities. This first release will validate the system's viability and gather user feedback for future iterations.
- Python 3.12.x
- SQLite (default database for Django)
-
** Download git and python:**
sudo apt-get update sudo apt-get install -y git python3 python3-pip
-
Clone the repository:
git clone https://github.com/your-username/softserve-academy.git cd softserve-academy
-
Create a virtual environment:
python -m venv venv source venv/bin/activate
-
Install the dependencies:
pip install -r requirements.txt
-
Run the Django migrations:
python manage.py migrate
-
Create a superuser:
python manage.py createsuperuser
-
Run the development server:
python manage.py runserver
And that's it. Open your web browser and go to http://localhost:8000/
if you have it locally, or http://<instance-ip>:8000/
if you have it on a remote server.
-
Install Docker and Docker Compose:
sudo apt-get update sudo apt-get install -y apt-transport-https ca-certificates curl gnupg2 software-properties-common curl -fsSL https://download.docker.com/linux/debian/gpg | sudo apt-key add - sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/debian buster stable" sudo apt-get update sudo apt-get install -y docker-ce docker-ce-cli containerd.io sudo apt update sudo apt install -y docker-compose-plugin
-
Copy the docker-compose.yml on your PC:
curl -L -o docker-compose.yml https://github.com/QuitoTactico/SoftServe-Academy/raw/main/docker-compose.yml
-
Run the Docker Compose:
sudo docker compose up -d --pull always
-
Extra:
You can check the status of the containers with:sudo docker container ls
Check the logs with:
sudo docker container logs softserve_web_1 sudo docker container logs softserve_db_1
And shut down the containers with:
sudo docker compose down
And that's it! You can now access the application opening your web browser and going to http://localhost
, or http://<instance-ip>
if you have it externally. This runs on the port 80 by default.
This creates a container with the Django application
and another container with the database (MySQL)
, but with the same migrations and data as the beta SQlite uploaded in this repository.
-
Install Docker and Docker Compose:
sudo apt-get update sudo apt-get install -y apt-transport-https ca-certificates curl gnupg2 software-properties-common curl -fsSL https://download.docker.com/linux/debian/gpg | sudo apt-key add - sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/debian buster stable" sudo apt-get update sudo apt-get install -y docker-ce docker-ce-cli containerd.io sudo apt update sudo apt install -y docker-compose-plugin
-
Copy the docker-compose-swarm.yml on your PC:
curl -L -o docker-compose-swarm.yml https://github.com/QuitoTactico/SoftServe-Academy/raw/main/docker-compose-swarm.yml
(Optional) Edit the
docker-compose-swarm.yml
file and change thereplicas
value to the number of replicas you want for the Django service. Example using nano:sudo nano docker-compose-swarm.yml
-
Run the Docker Swarm:
The instance where you run this, will be the manager. It needs to have a public IP.sudo docker swarm init sudo docker swarm join-token manager
-
Copy the SECOND generated token and run that command on the worker instances:
(Download docker for them too)(Example) sudo docker swarm join --token <token> <manager-ip>:2377
-
Deploy the stack in the manager:
sudo docker stack deploy -c docker-compose-swarm.yml softserve
-
Extra:
You can check the status of the deployment with:sudo docker node ls sudo docker service ls sudo docker service ps softserve_web sudo docker service ps softserve_db sudo docker container ls
Check the logs with:
sudo docker service logs softserve_web sudo docker service logs softserve_db
And shut down the stack with:
sudo docker stack rm softserve
And leave the swarm with:
sudo docker swarm leave --force
You can access the application opening your web browser and going to http://<manager-ip>/
, this runs on the port 80 by default.
This will create a service with 5 replicas of the Django container
, and a service with 1 replica of the database container (MySQL)
.
Name | Role | |
---|---|---|
Esteban Vergara Giraldo | evergarag@eafit.edu.co | Developer, Architect |
Miguel Ángel Cock Cano | macockc@eafit.edu.co | Tester |
Jonathan Betancur Espinosa | jbetancur3@eafit.edu.co | Developer |
Moises David Arrieta Hernandez | mdarrietah@eafit.edu.co | Analyst |
Pablo Baez Santamaria | pbaezs@eafit.edu.co | UX/UI, Scrum Master |