A RESTful API that uses MSC architecture to visualize, search and filter soccer matches and team's scores. Developed at Trybe's Back-end Module, OOP and SOLID.
- Welcome to Trybe Futebol Clube (TFC) project!
- Summary
- Context
- Technologies, tools and architectures used
- Installing and running the app
- Notes
This project is a Soccer Club that uses Sequlize to connect with a MySQL database to manage teams, matches and users. Main features:
- Authentication and Authorization | Logged users can add and update matches progress. Visualizations doesn't require login.
- Visualize and Filter | Users can visualize all matches, or filter if they're in progress or not. And visualize the full leaderboard or filter by team origin (home or away).
This project used the following technologies, tools and patterns:
- Node.js, Express, JWT | Create a HTTP API, API routing, authentication and authorization.
- Sequelize | ORM, create relationships between entities.
- Mocha, Chai, Sinon | Integration and unit testing for Node.js, testing honeycomb, test coverage.
- MSC Architecture | Improve code organization, maintenance and scalability.
- REST Architecture | Simple architecture and highly popular.
- OOP and SOLID | SOLID with TypeScript.
cd tfc
npm install
cd app
docker-compose up -d
cd backend
npm run dev
Front-end was developed by Trybe's team
cd frontend
npm start
Run all tests
backend
npm run test
See test coverage
npm run test:coverage
API's documentation can be found here.
To enforce Clean Code and good practices, the following standards and resources were used in this project:
- Linter | Developed following the Clean Code standards specified by Trybe's ESLint.
Commited using the Conventional Commits specification with some types from Angular convention.