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.
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.
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.
- 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.
- 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.
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.