Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/khumozin/news-app
https://github.com/khumozin/news-app
angular angular-material cypress github-actions jasmine newsapi semantic-release tailwindcss
Last synced: 26 days ago
JSON representation
- Host: GitHub
- URL: https://github.com/khumozin/news-app
- Owner: Khumozin
- Created: 2023-09-08T10:49:59.000Z (about 1 year ago)
- Default Branch: main
- Last Pushed: 2024-10-04T07:33:33.000Z (about 1 month ago)
- Last Synced: 2024-10-10T20:40:56.369Z (26 days ago)
- Topics: angular, angular-material, cypress, github-actions, jasmine, newsapi, semantic-release, tailwindcss
- Language: TypeScript
- Homepage:
- Size: 600 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
Awesome Lists containing this project
README
# News App
This README provides an overview of a News App built with Angular, Angular Material & Tailwindcss, Semantic Release, GitHub Actions for CI/CD, Cypress for end-to-end tests, and Jasmine & Karma for unit tests. This app fetches news data from [newsapi.org](https://newsapi.org/) using their REST API.
## Table of Contents
- [Features](#features)
- [Getting Started](#getting-started)
- [Project Structure](#project-structure)
- [Running the Application](#running-the-application)
- [Running Tests](#running-tests)
- [Deployment](#deployment)
- [Continuous Integration](#continuous-integration)
- [Contributing](#contributing)
- [License](#license)## Features
- Display news articles from various sources and categories.
- Search for news articles using keywords.
- View detailed information about individual news articles.
- Responsive design for mobile and desktop.
- End-to-end tests to ensure app functionality.
- Unit tests for robust code quality.## Getting Started
1. Clone the repository to your local machine:
```bash
git clone https://github.com/your-username/news-app.git
```2. Change to the project directory:
```bash
cd news-app
```3. Install the project dependencies:
```bash
npm install
```4. Build the application:
```bash
ng build
```## Project Structure
The project structure is organized as follows:
- `src/app`: Contains the Angular application components, services, and modules.
- `src/assets`: Includes static assets like images, icons, and styles.
- `cypress`: Contains end-to-end test files.
- `karma.conf.js`: Configuration file for Karma and Jasmine unit-testing.
- `.github/workflows`: Configuration files for Github Actions and Semantic Release.## Running the Application
To run the application locally, use the following command:
```bash
ng serve
```This will start a development server, and you can access the app in your web browser at `http://localhost:4200`.
## Running Tests
### Unit Tests with Jasmine & Karma
You can run unit tests using the following command:
```bash
ng test --code-coverage
```### End-to-End Tests with Cypress
You can run end-to-end tests using the following command:
```bash
ng serve --port=4200
``````bash
npx cypress run
```## Continuous Integration
Continuous Integration (CI) is set up using GitHub Actions to automate the build, test, and deployment processes. The workflow can be found in the .github/workflows directory. Make sure to configure the necessary environment variables and deployment settings in your CI/CD platform.
## Contributing
If you would like to contribute to this project, please follow these steps:
1. Fork the repository.
2. Create a new branch for your feature or bug fix.
3. Make your changes and test them thoroughly.
4. Create a pull request with a clear description of you changes.## License
This News App project is licensed under the `MIT License`. Feel free to use and modify it as per your requirements.