Accessible API to know Africa
The inception of the KnowAfrika
API was motivated by
our aspiration to offer a solution focused on acquiring
a deeper understanding of Africa through an API
service.
We firmly believe in the transformative potential of technology to democratize information.
Our overarching mission is to enhance the accessibility of information about Africa, making it readily available to individuals not only across the continent but also worldwide.
Refer to backend directory for detailed information on installation and environment requirements
- Base url ->
http://127.0.0.1:8000
- SWagger docs ->
http://127.0.0.1:8000/docs
- Curl -> On command terminal
- Browser
find out more in technical documentation page
Feature | Description | Directory |
---|---|---|
Landing Page | Page containing information on the project and contacts of contributers | Web Static |
Technical Documentation Page | Page containing technical documentation of API | Web Static |
User Modules | Router containing endpoints with CRUD functions on User modules |
Users |
Authentication | Router containing endpoints with CRUD functions on user authentication |
Authentication |
Regions | Router containing endpoints with CRUD functions on regions of Africa |
Regions |
Countries | Router containing endpoints with CRUD functions on African countries |
Countries |
Provinces | Router containing endpoints with CRUD functions on provinces of African countries |
Provinces |
Cities | Router containing endpoints with CRUD functions on cities of provinces in African countries |
Cities |
Attractions | Router containing endpoints with CRUD functions on attractions of cities in African countries |
Attractions |
Flags | Router containing endpoints with CRUD functions on falgs of African countries |
Flags |
Currencies | Router containing endpoints with CRUD functions on currencies of African countries |
Currencies |
Languages | Router containing endpoints with CRUD functions on languages of African countries |
Languages |
Time-zones | Router containing endpoints with CRUD functions on time-zones of African countries |
Time-zones |
Transport | Router containing endpoints with CRUD functions on transportation modes of African countries |
Transportation |
Constitutions | Router containing endpoints with CRUD functions on constitutions of African countries |
Constitutions |
Holidays | Router containing endpoints with CRUD functions on holidays of African countries |
Holidays |
Contacts | Router containing endpoints with CRUD functions on emergency contacts of African countries |
Contacts |
-
Main Branch The
main
branch represents the main codebase and should always contain stable and production-ready code. Developers should avoid directly committing changes to this branch to maintain its integrity. -
Feature Branches When working on a new feature, bug fix, or improvement, developers create a new branch from the "main" branch. This branch is often named after the feature or issue being addressed.
-
Code Development Developers work in their respective feature branches to implement and test the changes related to their assigned tasks. Frequent commits are made to track progress.
-
Pull Requests (PRs) Once a feature or bug fix is complete, the developer creates a pull request from their feature branch to the
master
branch. The pull request includes a summary of changes, the purpose of the code, and any relevant details. -
Code Review Team members or designated reviewers review the code changes in the pull request. They provide feedback, suggest improvements, and ensure code quality and best practices.
-
Continuous Integration (CI) Automated tests and checks are run as part of the CI process to verify that the new code integrates smoothly with the existing codebase and passes all necessary tests.
-
Merging After the pull request is approved and any requested changes are addressed, the code is merged into the
master
branch. This integration brings the new feature or fix into the main codebase. -
Tagging and Releases Once a set of features or bug fixes is merged into the
master
branch, a release may be created by tagging the commit with a version number. This helps track and manage different versions of the software. -
Branch Cleanup After successful merging, feature branches are usually deleted to keep the repository organised and avoid clutter.
By following this branching and merging process, teams can collaborate effectively, maintain a stable main codebase, and ensure that new code additions are well-tested and thoroughly reviewed before becoming part of the production code.
This project is licensed under the MIT License - see LICENSE for details.
-
Samuel Selasi K. -> Linkedin, Medium, X
-
Stacy Gakiria -> Linkedin, Medium, x