Avo4Camerun is a project that aims to help a Cameroonian school by making video lessons and sharing them via the online e-learning platform we are developing. The project is born from a collaboration between the public technical school “Amedeo Avogadro” of Turin and the no-profit organisation “Sermig”, also in Turin.
ADD: Alcune delle sfide che hai dovuto affrontare e le funzionalità che speri di implementare in futuro.
We are a group of electrotechnics and computer science students that, with our teachers’ and Sermig’s aid, decided to share with the Cameroonian students what we normally learn at school here in Italy.
We all study at “Amedeo Avogadro” technical high school, in Turin, our ages range from 17 to 20 and we all agreed when one of our teachers, Alfonso Carlone, offered us to take on this project.
We decided to team with the “ReTe” project because we all think that knowledge should be accessible to everyone, everywhere.
Sermig is a no-profit organization that helps whoever needs, it’s founded in 1964 in Turin by Ernesto Olivero whose goal was to “end world hunger”, and even if nowadays that dream is still far away Sermig has grown a lot ever since.
Today Sermig has four seats (two in Italy, one in Brazil and one in Jordan) and its volunteers are scattered all over the world. One of the many projects that Sermig is taking on is called “ReTe” that stands for “Restituzione Tecnologica” (Technology Sharing) and its objective is to teach in less developed countries the notions that we often give for granted but that could really help them in their situation. For more info: sermig
Perché hai usato le tecnologie che hai usato?
The we app is based on a client-server structure, the server is made with node.js, the database is a SQL structured DB made with MySQL. The front end uses the server's exposed service via rest api endpoint. We also used Docker to divide in containers all the different parts that will be installed on the hosting device.
The Structure about AVO4CAMERUN project is very simple, it's consist of DBservices, Routers, Validator, Utils. The main file is server.js, it call whole app and listen http request. To find out more, consult the files in repo😁.
These modules will be installed for the project to work properly:
- node.js - evented I/O for the backend
- express - fast node.js network app framework
- cors - module to use cors (cross origins)
- body-parser - module to analyze http body
- express-validator - module to valiadte and sanitize input received on http
- dotenv - module to configure env data
- js-sha256 - module to hashing
- googleapis - module to use google cloud services
- prisma.io - ORM/ODM library
- jwt - simple implementation of JWT standard
- nodemailer - module to sending email (SMTP use)
- winston - module to create very good logger of app problems
- swagger-jsdoc - module to read swagger json
- swagger-ui-express - module to genarete swagger ui from swagger json
After installing the js node and installing mysql we will execute these commands on the project folder:
- npm init
- npm @prisma/client body-parser cors dotenv express express-validator googleapis js-sha256 jsonwebtoken nodemailer swagger-jsdoc swagger-ui-express winston
- npx prisma db push
- node server.js
The api design is here: Swagger docs


