Click here to Skip to main content
15,355,301 members
Articles / Containers / Docker

Stats

40.2K views
163 downloads
28 bookmarked

News Track - News Aggregator

Rate me:
Please Sign up or sign in to vote.
4.97/5 (14 votes)
1 Jul 2022MIT3 min read
A news tracking or news aggregator website that allows users to share content they find on the Internet and give it certain visibility
This project is about a news tracking website that has a membership control panel, content browser, search engine, last news, most popular and most embarassing news, related and suggested news and tags, corporate content and comments.

.NET AngularCI codecov

News Track

News Track is a news tracking or news aggregator website where users can share the content they find on Internet and give to it certain visibility.

The project is made by using .NET 6 as backend and ElasticSearch as NoSQL database while its frontend is made with Angular 12 and Bootstrap 3.

Features

  • Membership control panel
  • Content browser
  • Search engine
  • Last news
  • Most popular news
  • Most embarrasing news
  • Related news
  • Suggested news and tags
  • Corporate content (terms, privacy and about us)
  • Comments

Content browser

By using this feature the user is able to browse a given URL and choose an image, a title and some paragraphs that represent the news. At same time the user can relate this content to other content that is already on the system and tag it with the most representative words. It's important to tag and relate to other existing content properly because the suggestion process algorithm uses this information in order to accomplish more accurate suggestions.

Content browser

Search engine

The user is able to search content by using relevant words and tags.

Search engine

Last news

This feature lists the last incoming news on the system.

News list

Most popular news

This feature lists the most viewed news on the system. Once a user get a certain news, the viewes counter gets increased.

Most embarrasing news

This feature lists the most embarrassing news on the system. The user is able to complain about certain content. Once a user clicks the embarrasing button, the counter gets increased.

Related news

This feature lists related content.

Suggested news and tags

As much content the system has, the better. The algorithm will search for related news and tags to match other content and get suggestions.

Membership control panel

Nowadays the membership is limited to admin purposes, meaning that only the admin and contributors can post news, create new users, change current password, and dispatch the suggestion process. In a near feature more kind of users will be added.

To set your admin settings, update your backend appsettings.json file. Once the application wakes up it will create the user.

JavaScript
JavaScript
"Admin": {
  "Username": <span class="pl-pds">"ADMIN_USERNAME"</span>,
  "Email": <span class="pl-pds">"ADMIN_EMAIL_ADDRESS"</span>,
  "Password": <span class="pl-pds">"ADMIN_PASSWORD"</span>
}

Corporate content

Built-in section with Terms, Privacy and About us. You only need to update the assets/appsettings.json file to customize your website.

JavaScript
JavaScript
{
    "defaultLanguage": <span class="pl-pds">"en"</span>,
    "brand": <span class="pl-pds">"NewsTrack"</span>,
    "twitterUrl": <span class="pl-pds">"http://www.twitter.com"</span>,
    "facebookUrl": <span class="pl-pds">"http://www.facebook.com"</span>,
    "githubUrl": <span class="pl-pds">"http://www.github.com"</span>,
    "corporation": <span class="pl-pds">"NewsTrack Corp"</span>,
    "country": <span class="pl-pds">"Spain"</span>
}

Remove the social media URLs or leave them blank in case you don't want to make them appear at the website's footer.

Comments

Any news can be commented by authenticated users. Also, comments can be replied starting a comment thread. Liking a comment is possible too.

Configuration

Update the backend appsettings.json file for the following purposes:

JavaScript
JavaScript
"ConnectionStrings": {
    "ElasticSearch": <span class="pl-pds">"http://localhost:9200"</span>
  }

Set your ElastichSearch endpoint.

JavaScript
JavaScript
"Websites": [
    <span class="pl-pds">"www.somewebsite.com"</span>
  ]

Set your website black list in order to warn you that the content you are about to post belongs to certain owner.

JavaScript
JavaScript
"Smtp": {
    "From": <span class="pl-pds">"SENDER"</span>,
    "Username": <span class="pl-pds">"SMTP_USERNAME"</span>,
    "Host": <span class="pl-pds">"SMTP_HOSTNAME"</span>,
    "Password": <span class="pl-pds">"SMTP_PASSWORD"</span>,
    "Port": <span class="pl-pds">"SMPT_PORT_NUMBER"</span>
  }

Set your SMTP settings in order to get email warnings in case your account has been blocked, account created or account confirmed. Leaving the settings as empty the engine will generate email files into a directory called outbox.

JavaScript
JavaScript
"Tokens": {
  "Issuer": <span class="pl-pds">"http://localhost/NewsTrack.WebApi"</span>,
  "Audience": <span class="pl-pds">"http://localhost:4200"</span>,
  "Key": <span class="pl-pds">"SIGNING_KEY"</span>
}

Set your JWT settings.

JavaScript
JavaScript
"ApiUrl": <span class="pl-pds">"http://localhost/NewsTrack.WebApi"</span>

Set your public website domain (with or without path).

JavaScript
JavaScript
"SignInUrl": <span class="pl-pds">"http://localhost:4200/authentication"</span>

Set your frontend authentication URL where the user has to be redirected once he confirms his membership.

Docker

There are a couple of compose files. The one located under /docker/backing-services creates only the ELK replicaset, while the one in /docker creates the images and containers for the frontend and backend along with the ES cluster by using the set up Docker environment.

docker-compose up
This article was originally posted at https://github.com/gcastellov/news-track

License

This article, along with any associated source code and files, is licensed under The MIT License

Share

About the Author

Gerard Castelló Viader
Software Developer (Senior)
Spain Spain
http://www.linkedin.com/in/gerard-castello-viader
https://github.com/gcastellov

Comments and Discussions

 
Questionhow to run this Pin
Divya Khushalani31-May-22 22:18
MemberDivya Khushalani31-May-22 22:18 
NewsMessage Closed Pin
15-Feb-22 3:05
Memberbno news15-Feb-22 3:05 
QuestionMessage Closed Pin
31-Oct-21 20:09
professionalmahamali12331-Oct-21 20:09 
QuestionWhy Angular 5? Pin
Daniel Petersen26-Oct-21 8:19
MemberDaniel Petersen26-Oct-21 8:19 
AnswerRe: Why Angular 5? Pin
Gerard Castelló Viader27-Oct-21 0:21
MemberGerard Castelló Viader27-Oct-21 0:21 
GeneralMy vote of 5 Pin
Ștefan-Mihai MOGA6-Oct-21 1:15
professionalȘtefan-Mihai MOGA6-Oct-21 1:15 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Praise Praise    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.