GithubHelp home page GithubHelp logo

technews's Introduction

TechNews

TechNews is a web application that aggregates and delivers the latest tech news to users. Users can subscribe to newsletters, search for articles based on keywords, and stay updated with the most recent technology trends. This project includes a backend API to manage news articles and a front-end interface for users to interact with the application. You can check documentaion via this link: Documentation alt DOC_img You can find front-End implementation here: Front-end

Features

  • News Aggregation: Fetches and displays tech news articles based on user-specified keywords.
  • Newsletter Subscription: Users can subscribe to a newsletter to receive regular updates.
  • Pagination: Supports pagination for efficient browsing of news articles.
  • Rate Limiting: Ensures fair usage of the API endpoints.
  • Error Handling: Handles various errors and provides meaningful responses.

Technologies Used

Backend

  • Spring Boot: Main framework for developing the REST API.

  • Spring Data Mongo: For database interactions.

  • Spring Security: To handle authentication and authorization.

  • MonoDB: Database to store user and news article data.

  • Rate Limiter: For controlling the rate of API requests.

  • Spring Cache: Caching api responses to reduce database calls

    Technology version
    Java 17
    Spring boot 3.2.3
    Resilience4j 2.2.0
    OpenApi 2.5.0
    Spring security 3.2.3

Directory tree

TechNews
├── .idea
├── target
├── TechNews_Backend [TechNews]
│   ├── .mvn
│   ├── src
│   │   ├── main
│   │   │   ├── java
│   │   │   │   └── com
│   │   │   │       └── aker.TechNews
│   │   │   │           ├── Config
│   │   │   │           │   ├── CacheCustomizer
│   │   │   │           │   ├── MailSenderConfig
│   │   │   │           │   ├── OpenApiDocConfig
│   │   │   │           │   ├── RateLimiterCustomConfig
│   │   │   │           │   └── SecurityConfiguration
│   │   │   │           ├── Controller
│   │   │   │           │   ├── ApiProxyController
│   │   │   │           │   └── TechNewsController
│   │   │   │           ├── entity
│   │   │   │           │   ├── Article
│   │   │   │           │   └── NewsLetterSub
│   │   │   │           ├── exception
│   │   │   │           ├── filter
│   │   │   │           │   ├── ApiKeyAuth
│   │   │   │           │   └── ApiKeyAuthFilter
│   │   │   │           ├── model
│   │   │   │           ├── Repository
│   │   │   │           ├── response
│   │   │   │           ├── Service
│   │   │   │           │   ├── apinews
│   │   │   │           │   │   ├── DataLoader
│   │   │   │           │   │   └── NewsApi
│   │   │   │           │   ├── implementation
│   │   │   │           │   │   ├── ArticleServiceImp
│   │   │   │           │   │   ├── ClientAuthenticationService
│   │   │   │           │   │   ├── EmailSenderService
│   │   │   │           │   │   ├── NewsLetterService
│   │   │   │           │   │   └── ArticleService
│   │   │   │           │   └── Application
│   │   │   │           └── mysql
│   │   │   ├── resources
│   │   │   │   ├── static
│   │   │   │   └── templates

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.