https://github.com/chaoss/afos-api

Backend service for the African Open Source(AFOS) project

https://github.com/chaoss/afos-api

Science Score: 13.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
  • DOI references
  • Academic publication links
  • Committers with academic emails
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (12.6%) to scientific vocabulary

Keywords

africa chaoss github oss
Last synced: 5 months ago · JSON representation

Repository

Backend service for the African Open Source(AFOS) project

Basic Info
Statistics
  • Stars: 3
  • Watchers: 8
  • Forks: 2
  • Open Issues: 3
  • Releases: 0
Topics
africa chaoss github oss
Created over 1 year ago · Last pushed over 1 year ago
Metadata Files
Readme Contributing License

README.md

AFOS-API

This is the backend API for the African Open Source(AFOS) project. AFOS is a platform that showcases open source projects from Africa and provides a platform for developers to showcase their skills.

Architecture

This is a monorepo that contains the backend API for the AFOS project. The backend API is built using Node.js, Express, and MySQL. The backend API is responsible for handling all the requests from the frontend. Tools and technologies used in this project include:

  • Node.js: A JavaScript runtime built on Chrome's V8 JavaScript engine.
  • Express: A web application framework for Node.js.
  • MySQL: A relational database management system.
  • Sequelize: A promise-based Node.js ORM for MySQL.
  • JWT: A JSON Web Token library for node.js.
  • Zod: A TypeScript-first schema validation library.
  • Nodemailer: A module for Node.js applications to allow easy as cake email sending.
  • Docker: A platform for developers and sysadmins to build, ship, and run distributed applications.
  • Jest: A delightful JavaScript Testing Framework with a focus on simplicity.

AFOS Architecture

Database Diagram

This is the database diagram for the AFOS project. The database is built using MySQL. The schema diagram below shows the tables in the database and the relationships between them.

AFOS Database Diagram

How to setup project

  • Clone the repository.
  • Run npm install to install all dependencies.
  • Create a .env file in the root directory and copy the contents of .env.example into it. Fill the variables with the required values.
  • Run npm run dev to start the server.

How to run tests

  • Run npm run test to run all tests.
  • Run npm run test:watch to run all tests in watch mode.
  • Run npm run test:coverage to run all tests and generate a coverage report.

Contributing

Contributions are welcome! Please feel free to open an issue or submit a pull request. Make sure to follow the Contributing Guidelines before submitting a pull request.

Owner

  • Name: CHAOSS
  • Login: chaoss
  • Kind: organization

GitHub Events

Total
  • Issues event: 2
  • Watch event: 3
  • Issue comment event: 4
  • Member event: 2
  • Push event: 7
  • Pull request event: 1
  • Fork event: 2
Last Year
  • Issues event: 2
  • Watch event: 3
  • Issue comment event: 4
  • Member event: 2
  • Push event: 7
  • Pull request event: 1
  • Fork event: 2

Committers

Last synced: 8 months ago

All Time
  • Total Commits: 9
  • Total Committers: 2
  • Avg Commits per committer: 4.5
  • Development Distribution Score (DDS): 0.111
Past Year
  • Commits: 9
  • Committers: 2
  • Avg Commits per committer: 4.5
  • Development Distribution Score (DDS): 0.111
Top Committers
Name Email Commits
Desmond Obisi d****t@y****m 8
Elizabeth Barron e****h@e****m 1
Committer Domains (Top 20 + Academic)

Issues and Pull Requests

Last synced: 8 months ago

All Time
  • Total issues: 2
  • Total pull requests: 1
  • Average time to close issues: N/A
  • Average time to close pull requests: N/A
  • Total issue authors: 1
  • Total pull request authors: 1
  • Average comments per issue: 2.0
  • Average comments per pull request: 0.0
  • Merged pull requests: 0
  • Bot issues: 0
  • Bot pull requests: 0
Past Year
  • Issues: 2
  • Pull requests: 1
  • Average time to close issues: N/A
  • Average time to close pull requests: N/A
  • Issue authors: 1
  • Pull request authors: 1
  • Average comments per issue: 2.0
  • Average comments per pull request: 0.0
  • Merged pull requests: 0
  • Bot issues: 0
  • Bot pull requests: 0
Top Authors
Issue Authors
  • Mbaoma (2)
Pull Request Authors
  • DotunV (2)
Top Labels
Issue Labels
Pull Request Labels

Dependencies

package-lock.json npm
  • accepts 1.3.8
  • array-flatten 1.1.1
  • body-parser 1.20.3
  • bytes 3.1.2
  • call-bind 1.0.7
  • content-disposition 0.5.4
  • content-type 1.0.5
  • cookie 0.7.1
  • cookie-signature 1.0.6
  • debug 2.6.9
  • define-data-property 1.1.4
  • depd 2.0.0
  • destroy 1.2.0
  • ee-first 1.1.1
  • encodeurl 2.0.0
  • encodeurl 1.0.2
  • es-define-property 1.0.0
  • es-errors 1.3.0
  • escape-html 1.0.3
  • etag 1.8.1
  • express 4.21.1
  • finalhandler 1.3.1
  • forwarded 0.2.0
  • fresh 0.5.2
  • function-bind 1.1.2
  • get-intrinsic 1.2.4
  • gopd 1.0.1
  • has-property-descriptors 1.0.2
  • has-proto 1.0.3
  • has-symbols 1.0.3
  • hasown 2.0.2
  • http-errors 2.0.0
  • iconv-lite 0.4.24
  • inherits 2.0.4
  • ipaddr.js 1.9.1
  • media-typer 0.3.0
  • merge-descriptors 1.0.3
  • methods 1.1.2
  • mime 1.6.0
  • mime-db 1.52.0
  • mime-types 2.1.35
  • ms 2.0.0
  • ms 2.1.3
  • negotiator 0.6.3
  • object-inspect 1.13.2
  • on-finished 2.4.1
  • parseurl 1.3.3
  • path-to-regexp 0.1.10
  • proxy-addr 2.0.7
  • qs 6.13.0
  • range-parser 1.2.1
  • raw-body 2.5.2
  • safe-buffer 5.2.1
  • safer-buffer 2.1.2
  • send 0.19.0
  • serve-static 1.16.2
  • set-function-length 1.2.2
  • setprototypeof 1.2.0
  • side-channel 1.0.6
  • statuses 2.0.1
  • toidentifier 1.0.1
  • type-is 1.6.18
  • unpipe 1.0.0
  • utils-merge 1.0.1
  • vary 1.1.2
package.json npm
  • body-parser ^1.20.3
  • express ^4.21.1