Construindo uma plataforma de edtech usando microsserviços e docker
Descrição do projeto
O projeto consiste em três microsserviços, a saber:
- MicrosService do usuário
- Curso MicrosService
- Microservice de inscrição
O microsserviço do usuário ajuda a registrar um usuário no aplicativo. Em seguida, ajuda o usuário a fazer login em sua conta e ter uma sessão separada para si. Esse microsserviço possui um banco de dados independente (neste caso, o banco de dados MongoDB), responsável por manter apenas as credenciais do usuário. A senha armazenada no banco de dados é incrutada e, portanto, garante a segurança dos usuários que se registram no web-aplicativo.
Os cursos MicrosService ajudam um usuário conectado a se inscrever em um curso específico. O usuário conectado pode aprender no seu próprio ritmo nos cursos inscritos. Um recurso exclusivo que este aplicativo da web possui é que qualquer usuário tem permissão para fazer upload de seus próprios cursos, diferentemente dos aplicativos educacionais tradicionais da Web. Qualquer usuário pode fazer upload de seu conteúdo para outros usuários aprenderem.
O Microservice de inscrição transferirá basicamente a solicitação da API para um serviço de pagamento de terceiros e isso cuidará de todos os pagamentos feitos pelo usuário e, portanto, ajudará a permitir o acesso para o curso específico do usuário.
Como executar este projeto localmente?
- Clone este repositório.
- Verifique se você possui o arquivo ".env" na sua base de código. Atualize o conteúdo no arquivo Env para incluir seu Razorpay keyid e secret_key
- Digite URL Cloudinary para o seu projeto editando JS -> script.js -> <Cloudinary_url>
- Instale o Docker e o Start.
- Use o terminal e escreva o seguinte comando.
docker-compose up --build --remove-orphans
- Navegue para http: // localhost: 5000 para encontrar o site em funcionamento.
URL do site
Site ao vivo URL: http://129.213.124.99:5000/
Plataforma em nuvem: Oracle Cloud Infrastructure
Vídeos
Vídeo e explicação detalhados: https://drive.google.com/file/d/1fmqwxorlnv5u1ksagilcfcrnljfw6gn8/view?usp=sharing
Vídeo curto: https://drive.google.com/file/d/1eyqw0__sejbi9onpoak35rzrsozpd8wg/view?usp=sharing
Como implantar o site na nuvem?
- Crie a conta do Oracle Cloud, usando a assinatura de camada gratuita (se necessário).
- Crie Rede de Cloud Virtual (VCN).
- Configure a lista de segurança padrão para o VCN adicionando regras de entrada para as portas 22, 80. Adicione as portas que você usará para o projeto. Por exemplo, neste projeto, temos portas 5000, 5001, 7000, 30002.
- Crie e conecte -se à instância da nuvem.
- Instale o Git, o Docker e o Docker-Compose no terminal da instância da nuvem.
- Clonar este repositório e executar
docker-compose up --build -d
- Configure o firewall usando os seguintes comandos:
sudo firewall-cmd --permanent --zone=public --add-service=http
sudo firewall-cmd --permanent --zone=public --add-port=5000/tcp <ALL REQUIRED PORTS>
sudo firewall-cmd --reload
- Vá para o seu IP público: Port! Pronto! Seu site está implantado na nuvem! :)
Papel técnico
Artigo apresentado na Conferência IEEE Pune por @aparna0522 (Aparna Naik) em dezembro de 2021.
Artigo publicado no IEEE Xplore em 31 de janeiro de 2022.
Link em papel: https://ieeexplore.ieee.org/document/9686535
Exclusividade do aplicativo
- Este aplicativo permite que qualquer usuário faça upload de seu curso para que outros possam aprender com o mesmo curso. (Perspectiva do usuário)
- Este aplicativo usa a arquitetura de microsserviços, o que o torna escalável, dependente e robusto em comparação com aplicativos arquiteturados monolíticos. (Perspectiva tecnológica)
Trabalho futuro
- Deixe os colegas se conectarem individualmente, rede, aprendam e cresçam juntos, integrando um serviço de bate-papo (permitindo que apenas usuários registrados vejam outros usuários e ocultando detalhes da identidade, a menos que o usuário queira de outra forma).
- Capacidade para os instrutores criarem o ataque para facilitar a avaliação.
- Pode adicionar algum sistema de monitoramento de análise para o upload do curso.
- Serviço de recomendação.
- Novo serviço de notificação do curso.
Recursos importantes do aplicativo:
- Independente de outros microsserviços.
- Se um serviço diminuir, não afetará outros serviços.
- Escala dos serviços.
- Eficiente.
- Portable.