Your go-to platform for real-time sports data and scores across Football, Basketball, and Tennis. Dive into live scores, fixtures, league tables, and more.
About the project
This is a website witch hightly depends on the scrapper project. Because all of collected data we visualise here.
1. The "Fixtures" section on website is a comprehensive list of football events, organized by leagues. Each league has its own dedicated table, making it easy for users to browse events within a specific league. This structure helps users quickly find relevant matches and view detailed scheduling information.
2. The "Live" section on website represent real-time updates for Football, Tennis, and Basketball events. This section refreshes every 5 seconds, ensuring that users receive up-to-the-moment scores and updates for each sport. This frequent refresh rate provides a dynamic, up-to-date experience for users tracking live events.
How it works?
Here we have 3 main components:
1. Scrapper: Collects all publicly available data required for the website.
2. API: Manages data accessibility, allowing for filtering and merging to provide only the necessary data.
3. Website: Presents the data visually for clients, making it easy to navigate and interact with the information collected
Why NextJS?
Next.js is a particularly for projects that demand fast, dynamic, and SEO-friendly web applications.
Why Jest?
Jest is a popular testing framework, particularly suited for JavaScript and TypeScript projects. Great with React Testing Library.
Is particularly useful for testing API calls, asynchronous code, and external dependencies.
Why MongoDB?
MongoDB is a flexible and scalable NoSQL database, well-suited for applications that handle large, semi-structured, or unstructured datasets.
MongoDB supports rapid read and write operations, which is useful for handling live data updates, such as scores and event statuses.
Why Prisma ORM?
Prisma ORM offers several advantages, especially for a project that uses MongoDB with Next.js and TypeScript.
Prisma generates types based on database schema, ensuring that code remains type-safe.
Generates efficient queries for database operations.
Abstracts away the complexity of direct database interaction. So Focus is on writing application logic rather than worrying about complex queries.
Why Docker?
Docker streamlines project deployment by ensuring consistency across environments.
With Docker, we bundle the application along with all its dependencies so there are no unexpected issues with package versions or system configurations.
Docker makes it easier to run Jest tests in isolated environments, so you can be confident that everything works as expected when the tests pass.
Why GitHub?
Using GitHub for version control and to manage CI/CD pipeline.
Ensuring a smooth and automated workflow. This setup allows to easily deploy to production when the project is ready.
The CI/CD process helps maintain consistency and reliability throughout the deployment process.