What is your capability to deliver your project with high levels of trust and accountability?
Feasibility:
Reference (Past successes):
Wada has been organizing monthly meet-ups across our hubs, spreading awareness and introductory education on Cardano, Project Catalyst, and Blockhain technology as a whole. We have already established active hubs in: Ivory Coast (French), Ghana (English), Nigeria (English), Cameroon (French & English) and Democratic Republic of Congo (French) that have been participating in these programs.
We, at WADA Cameroon combine strong experience in managing Cardano-funded projects on the Catalyst platform. As an institution that promotes the Cardano platform in Africa, We have already carried out the following projects:
1- Spread Plutus through Africa (https://cardano.ideascale.com/c/idea/60513)
2- Club and Hackathon (https://cardano.ideascale.com/c/idea/60512)
3- Nuturing root (https://cardano.ideascale.com/c/idea/64152)
4-etc.
Core Team & Roles:
Wada Hub Trainers & Coordination:
-
Manfo: Cameroon Team Co-Lead, Senior software architect & developer, 13+ year of experience programming, 3+ years in functional programming paradigm (F#, Haskell, Elm), Multilingual (French, English, Italian, Ngiembo)
-
Nkalla: Senior software architect & developer, 13+ year of experience programming, 3+ years in functional programming paradigm (Haskell), Mathematics teacher (Education Systems Engineering), Multilingual (French, Italian, English, Mbo)
-
Arcel: Senior Software developer in Closure 7 + years experience, Project manager, Multilingual (French, English)
-
Megan: Wada Cameroon Hub Co-Lead, Central Africa Coordination Lead, Wada core team member (Education and Event Lead), Math & Physics teacher, bilingual (French & English)
What are the main goals for the project and how will you validate if your approach is feasible?
The vision of the GooDanoMap project is "To be a tool that makes your trip enjoyable". The objectives of the project are:
- During the first year, be able to record the points of interest of seven quarters in three countries and those of a road axis of at least 300KM.
- During the following two years, gradually record the points of interest of 12 quarters and those of three road axis of at least 300KM.
- Register 200 users in the first year of operation and multiply this figure by 6 during the following three years;
- Encourage each user to register at least one area of interest during the first months of their subscription.
The final result will be the number of stable points of interest for which an NFT has been created as well as the rate of use/adoption of the application.
Please provide a detailed breakdown of your project’s milestones and each of the main tasks or activities to reach the milestone plus the expected timeline for the delivery.
The detailed plan including timeline and key milestones for delivering this proposal can be seen below:
Introduction
Project management will be done with modern IT project management methods: the Agile methodology. The Agile method and methodology is a particular approach to project management that is used in software development. This method helps teams respond to the unpredictability of building software. It uses incremental and iterative work sequences, commonly known as sprints. Sprints will be done periodically (once a week). Task tracking will be done using the JIRA tool.
Preparatory phase (preliminaries)
This phase will constitute the start of the mission. It consists of bringing together the elements necessary to carry out the mission. This launch will be marked by:
- a mission familiarization meeting between our experts and engineers in order to fully understand the work requested and describe the outline of the work plan to be followed;
- a documentary review on the project with regard to the administrative aspects (mission order, letter of authorization, etc.). As we will work with the administration to go arround in the quarters.
- administrative preparation of the project;
- Preparation of documents giving authorization to provide information;
- and setting up a planning workshop to produce the mission schedule;
At the end of this phase, we will produce an Inception Report or a Framework Note containing the detailed work plan and the methodology adopted.
Studies and analysis of the existing
This phase effectively constitutes the technical launch of the mission. This launch will be marked by:
- an exhaustive identification of internal and external services, actors and operators concerned by the project as well as their areas and sectors of intervention;
- an analysis of the current situation characterized by an awareness of current software used in similar activities such as Google Maps;
- a documentary research (recent reports and manuals of procedures) and an identification of the missions and services of the organizations involved, and if necessary, designing appropriate interview guides (questionnaires) to be sent to the main actors involved in the project in order to comply with the law.
As with any development of an IT solution, it is necessary to first know what are the different needs that this solution must meet.
- To do this, it will be important to get closer to clearly identified end users in order to know their needs;
- Finally, we will proceed to the Analysis and evaluation of our needs in the light of the information resulting from the informations collection;
It should also be noted that the conduct of these phases of information collection and needs analysis will be done, among other things, through the organization of one or more ad-hoc technical workshops which will bring together all the actors involved in the project.
At the end of this phase, we will formalize the detailed Specifications of the future IT solution.
Platform design
The creation of an electronic platform must imperatively be preceded by an analysis and design methodology whose objective is to formalize the preliminary stages of development so that the final rendering is more faithful to the needs of users. The analysis phase makes it possible to list the expected results, in terms of functionalities, and the design phase makes it possible to describe in an unambiguous manner, most often using a modeling language, the future operation of the system, in order to facilitate the realization.
The success of IT development projects largely depends on the design phase. And if it is not well done, there is a chance that the result obtained will not meet the needs expressed.
In order to build an application:
- Which easily adapts to scalability and extensibility,
- which resists breakdowns,
- which is extremely fast,
- which can be easily controlled,
we propose to design the application with the microservices architecture coupled with the DDD (Domain Driven Design). Each microservice will be responsible for solving a specific business problem and will operate independently of other microservices (low coupling). This architecture makes it possible to optimally address the complexity of the problems by applying the “divide and conquer” principle. In order to allow the reading and understanding of the architecture of the platform, a modeling software based on the functional paradigm will be used to describe the objects resulting from this architecture, their interaction, their interrelation and their relationship with the outside world (third party).
In this phase, it will be about of refining the analysis and designing the platform on the basis of the Specifications produced in the previous phase.
We will proceed through several steps, the first of which will consist in identifying the appropriate technical functionalities that will facilitate the putting online and the use of the business functionalities (needs identified).
Then, we will proceed to the actual modeling of the business functionalities, which will lead to the definition of the architecture of the future System and the choice of technologies and development tools, essentially based on proven and adequate open source solutions.
At the end of this phase, various documents will be produced, in particular:
- the prototype of the application;
- the Analysis Document;
- the Technical Design Document;
- the Quality Assurance Plan (QAP);
- the Security Policy (PS).
Acquisition of hardware and software infrastructure
After choosing the architectures, technologies and development tools, we will proceed to the choice of the hardware infrastructure and the software necessary to carry out the realization of the application. These infrastructures include servers in the cloud, IDE (Integrated Development Environment), licenses, etc.
Application Development
After the design phase of the platform, the development team will be set up and important activities will be carried out:
- We will start with the installations and configurations of the development environments consisting essentially of the Open Source tools chosen in the previous design phase.
- We will then proceed to the development of all the components designed in the previous phase. It will be about successively developing the technical functionalities, the Business functionalities, the security components, the graphic charter (defined in the prototype) and the editorial charter of the platform. Each feature developed will then be integrated into the global platform.
- At the end of the integration of all the developed modules, we will proceed to a packaging of the System for the internal global integration and functioning tests.
At the end of this phase, the following documents will be produced:
-
a development report;
-
well-documented source codes in digital format;
-
a test report,
-
Executables,
-
a training plan, as well as the various training modules;
User training
It is about giving the users of this project the technical skills for a better exploitation and maintenance of the developed platform. This phase is quite important for the preparation to promote the platform.
- We will start by identifying the types of users to train.
- This identification will guide us in the development and/or appropriate updating of training materials. The focus will be on the major components.
- Then, we will proceed with the preparation of the training: setting up the training site (networked PCs, deployment of the System on these PCs, configuration of the training platform, etc.), modern teaching tools (whiteboard, video projector , training materials in paper and digital format, etc.)
- The course of the training will follow: it will take place in the form of theoretical and practical exercises on the platform. Our trainers will be made up of people who participated in the Design and Development of the application and therefore have the minimum profile required to carry out this mission.
At the end of this phase, we will produce a Training Report with attendance, evaluation and recommendation sheets from the learners.
Deployment of the Application on Cardano
When the training is completed and its report validated, all that remains is to deploy the platform on the equipment acquired previously.
It should be noted that accounts will be opened on the Play Store and App Store platforms for the project in order to publish/deploy the Android and iOS applications obtained during the development of the platform.
Following these deployments, an approval session will be organized for the platform to verify that it complies with the specifications.
The deployment will follow the following steps:
- We will start by identifying the infrastructure (Servers, Storage, Internet Access) necessary to set up the platform.
- Then follow the installation and configuration of the application on this infrastructure;
- All that remains is to put the developed and tested Application into service.
this phase, it will be produced the deployment report.
Workplan
Data collection for the study and analysis of needs
The approach we will adopt to describe the situation is as follows:
- Identification of the different actors/operators and services involved in the project;
- Documentary research, identification of the missions, needs and services of the actors involved, possibly with the help of previously designed interview guides;
- Critical analysis of the current system;
- Analysis and Synthesis of needs obtained;
- Writing the Specifications;
- Validation of the Specifications with the actors involved
Application Design
The approach we will adopt for the design of the platform is as follows:
- Identification of the appropriate business and technical functionalities to put the business functionalities online (needs identified);
- Organization of functionalities into modules and identification of microservices;
- Modeling of the Business Features (identified needs) of each microservice;
- Definition of methods of interaction between microservices (Context Mapping) and choice of middleware (for asynchronous communications between microservices);
- Definition of the Components of each microservice and choice of appropriate technologies;
- Design of the Internal Architecture of each microservice;
- Design of the architecture of the mobile application;
- Writing of associated documents: Analysis Document; Technical design document; Quality Assurance plan ; Security policy ;
- Transmission of documents to the Project Monitoring Committee;
- Validation of documents relating to the design of the platform.
Application Development
The approach we will adopt for the development of the platform is as follows:
- Acquisition of development environments;
- Creation of git accounts for source code version management,
- Creation of Docker accounts for containerization and preparation for continuous integration.
- Deployment of development environments;
- Development and Integration of Technical Features;
- Development and Integration of Business Features;
- Development and Integration of Security Components;
- Packaging of the developed system and testing;
- Writing of documents relating to Development and transmission to the Project Monitoring Committee;
- Validation of documents relating to Development (Technical validation workshop).
User training
The approach we will adopt for the training of end users is as follows:
- Identification of users to be trained;
- Development of training content;
- Preparation of the training (site, teaching tools, teaching materials, etc.);
- Program of the training ;
- Evaluation of trainers and learners;
- Writing of the Training Report and Transmission to the Project Monitoring Committee;
- Validation of the Training Report.
Deployment to production environments
The approach that we will adopt to ensure the deployment on the production environments in order to allow the restitution of the mission is the following:
- Installing and configuring required software:
- Installing Docker,
- Configuration of the repository,
- Installation of configuration files,
- Installation of tools such as: proxy server, database server, web client for database access, installation of the chosen middleware, etc.
- Installation of the databases of the different microservices
- Deployment of different microservices
- Deployment/publication of mobile applications (Android and iOS) on the Play Store and App Store platforms;
- Writing of the deployment report;
Application and hardware maintenance of the platform
We will focus on discussing at this stage the definition of the essential elements of the Maintenance Protocol. These elements relate to:
- Corrective maintenance
- Blocking anomalies, leading to a critical malfunction: loss of data integrity, total or partial unavailability of application functionalities
- Major anomalies, preventing the partial use of a system functionality
- Minor anomalies, causing a minor malfunction of the system without degrading its use by users.
- It will also define the mode of communication and the management of the versions of the application.
- Preventive maintenance: Preventive maintenance consists of: Audit of the technical operation of the application environment and identification of improvements likely to be implemented (studies of the various logs and trace files from the system, the database and the application components)
- The evaluation of the improvements likely to be obtained by updating the components used, and if necessary the implementation of alternative or complementary solutions.
- Evolutionary maintenance
- Adaptive maintenance: This involves taking into account, at the request of users, improvements related to the evolution of the technical environment such as the change of version of the OS, Server, imposed by constraints related to security vulnerabilities on these, or system performance optimization needs.
Timeline
In full compliance with the technical design and methodology presented above, our overall work schedule is described in the table below. It should be remembered that the durations of the activities which emerge from this chronogram are estimated. Thus, this mission can be carried out by our experts/engineers in 51 (fifty-one) weeks (W1, W2, …, W51) i.e. a duration of 12 (twelve) months; subject to contingencies.
Please describe the deliverables, outputs and intended outcomes of each milestone.
The end product will be the solution deployed on an infrastructure. To achieve this and prepare the elements for its maintenance and scalability, it is necessary or even essential to produce intermediate deliverables during its development. These deliverables are:
-
The start report: It closes the initial and framing phase. The activities carried out in this phase are:
- Preparation of the administrative aspects of the mission
- Familiarization meeting between our experts and engineers
- Administrative preparation of the project
- Setting up a planning workshop to produce the mission schedule
- Writing of the start report
-
Specifications Document : It closes the study and analysis of the existing phase. The activities carried out in this phase are:
- Identification of the different actors involved in the project
- Documentary research (documents and manuals of procedures)
- Identification of the missions, needs and services of the actors involved,
- Analysis, Evaluation and Synthesis of the data and needs obtained
- Writing a document presenting the current system and the needs expressed (Specifications)
- Organization of an Ad-hoc Workshop to validate the Specifications
- Validation of the Specifications with the actors involved
-
System Design documents: It is composed of the following deliverables:
-
the prototype of the application;
-
the Analysis Document;
-
the Technical Design Document;
-
the Quality Assurance Plan (QAP);
-
the Security Policy (PS).
It closes the application design phase. The activities carried out in this phase are:
- Identification of the appropriate technical functionalities
- Identifying microservices
- Modeling of Business Features in the different microservices
- Definition of the Components of each microservice and choice of appropriate technologies
- Design of the global architecture of the platform
- Validation of System Design documents
-
Acquisition of hardware and software infrastructure report: All the overall software developed need and infrastructure to be runned. These infrastructure need to be acquire. The activities carried out in this phase are:
- Acquisition of hardware and software infrastructure
- nstallation, system configuration and security on the acquired hardware and software infrastructure
-
Development Documents report: It is composed of the following deliverables:
-
a development report;
-
well-documented source codes in digital format;
-
a test report,
-
Executables,
-
a training plan, as well as the various training modules;
It closes the application development phase. The activities carried out in this phase are:
- Acquisition of development environments
- Deployment of development environments
- Development and Integration of Technical Features
- Development and Integration of Business Features
- Development and Integration of Security Components
- Packaging of the developed system and tests
- Writing application Development report
-
End user training report: It closes the end user training phase. The activities carried out in this phase are:
- Identification of users to be trained
- Development of training content
- Preparation of the training (site, educational tools)
- Training
- Evaluation of trainers and learners
- Writing the Training Report
-
Deployment and restitution report: It closes the deployment phase. The activities carried out in this phase are:
- Identifying the deployment infrastructure
- Installation and configuration of the application on site
- Verification test
- Writing of the deployment report
- Preparation and participation in the validation workshop