Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/mashateayoub/countries

A Single page app made with angular presenting the different countries around the globe using the REST Countries API.
https://github.com/mashateayoub/countries

Last synced: 11 days ago
JSON representation

A Single page app made with angular presenting the different countries around the globe using the REST Countries API.

Awesome Lists containing this project

README

        

# Countries

This project was generated with [Angular CLI](https://github.com/angular/angular-cli) version 16.2.0.

## Current Features
- Display countries with their flags, names, capitals, populations, and regions
- Search countries by name
- Filter countries by region
- Dark/Light mode toggle
- Responsive design
- Wikipedia link integration
- Material Design UI components
- Keyboard navigation
- Added infinite scroll support

- Enhanced Search & Filtering
- Filter by:
- Population range
- Area size
- Language
- Currency
- Multiple region selection
- Advanced search with combinations of filters

- Country Details Page
- Detailed view for each country showing:
- Native name(s)
- Currency information
- Languages spoken
- Bordering countries with clickable links
- Time zones
- Google Maps integration

## Performance Features:
- **Image Optimization**: Automatically optimizes and caches images for faster loading
- **Lazy Loading**: Images are loaded only when they enter the viewport
- **Data Caching**: Implements intelligent caching for API responses
- **Resource Management**: Automatically cleans up unused resources

## Development server

Run `ng serve` for a dev server. Navigate to `http://localhost:4200/`. The application will automatically reload if you change any of the source files.

## Code scaffolding

Run `ng generate component component-name` to generate a new component. You can also use `ng generate directive|pipe|service|class|guard|interface|enum|module`.

## Build

Run `ng build` to build the project. The build artifacts will be stored in the `dist/` directory.

## Running unit tests

Run `ng test` to execute the unit tests via [Karma](https://karma-runner.github.io).

## Running end-to-end tests

Run `ng e2e` to execute the end-to-end tests via a platform of your choice. To use this command, you need to first add a package that implements end-to-end testing capabilities.

## Proposed New Features

### 3. Data Visualization
- Population charts
- Area comparison charts
- Regional statistics
- Interactive world map
- Economic indicators

### 4. User Features
- Favorite countries list
- Country comparison tool
- User authentication
- Personal dashboard
- Notes and annotations for countries

### 5. Localization
- Multi-language support
- Local time display
- Distance calculation from user's location
- Currency conversion based on real-time rates

### 6. Social Features
- Share country information
- User comments and ratings
- Country travel recommendations
- Cultural information sharing

### 7. Progressive Web App (PWA)
- Offline functionality
- Push notifications for country updates
- Install as desktop app
- Background sync

## Further help

To get more help on the Angular CLI use `ng help` or go check out the [Angular CLI Overview and Command Reference](https://angular.io/cli) page.

## License
This project is licensed under the MIT License. See the [LICENSE](LICENSE) file for details.