A modern, feature-rich blog platform built with Angular. This project provides a responsive, user-friendly interface for content creation, management, and consumption.
- Responsive blog interface with modern design
- Admin dashboard for content management
- Authentication with JWT and Google OAuth
- Markdown support for content creation
- Real-time search functionality
- Category and tag organization
- File upload and management
- User management with role-based access
- Analytics integration with Google Analytics
- Server-side rendering (SSR) for improved SEO
- Todo today management with recurring task support
- Note taking functionality with categorization
- Reading list and book management system
- Comprehensive analytics dashboard
- Donation and support options
- Coupon and reward system for users
- Framework: Angular 18
- UI Components: Angular Material, Bootstrap Material Design
- State Management: Angular Signals and RxJS
- Styling: SCSS
- Markdown: ngx-markdown with syntax highlighting
- Analytics: ngx-google-analytics
- HTTP: Angular HttpClient with interceptors
- Routing: Angular Router with lazy loading
- Testing: Jasmine and Karma
- Node.js 18.x
- npm 8.x+
- Angular CLI 18.x
- Clone the repository
git clone https://github.com/yourusername/ghost-blog-platform.git
cd ghost-blogs-fe- Install dependencies
npm install-
Configure environment
- Create a copy of
src/environments/environment.tsasenvironment.ts - Update API URL, Google Analytics code, and other settings
- Create a copy of
-
Start the development server
npm startNavigate to http://localhost:4500/ to see the application in action.
ghost-blogs-fe/
├── src/
│ ├── app/
│ │ ├── components/ # Reusable UI components
│ │ ├── guards/ # Route guards
│ │ ├── helpers/ # Helper functions and utilities
│ │ ├── layouts/ # Page layouts (admin, guest)
│ │ ├── models/ # TypeScript interfaces and models
│ │ ├── pages/ # Page components
│ │ ├── pipes/ # Custom Angular pipes
│ │ ├── services/ # API services and business logic
│ │ └── shared/ # Shared modules and components
│ ├── assets/ # Static assets (images, icons)
│ ├── environments/ # Environment configuration
│ └── styles/ # Global styles and themes
├── .github/workflows/ # CI/CD pipelines
└── server.ts # Server-side rendering setup
-
Layouts:
AdminLayoutComponent: Dashboard for content managementGuestLayoutComponent: Public-facing blog layout
-
Services:
AuthService: Handles authenticationPostService: Manages blog postsSearchService: Provides search functionalityFileService: Handles file uploads and managementAnalyticsService: Tracks user interactionsTodoTodayService: Manages daily tasks and recurring itemsNoteService: Handles note creation and managementBookService: Manages reading lists and book trackingRewardService: Handles user rewards and points systemCouponService: Manages coupons and promotional offers
-
Feature Modules:
- Blog module for post viewing and creation
- User management module
- File management module
- Analytics dashboard module
- Todo management with recurring tasks and labels
- Note taking system with organization features
- Book tracking and reading progress module
- Donation and support options
The platform includes several productivity tools designed to enhance user experience:
- Daily task management with status tracking
- Recurring task support with customizable patterns:
- Daily, weekday, weekend, monthly, and custom intervals
- Automatic creation of recurring tasks via cron jobs
- Task labeling and categorization
- Deadline management and priority setting
- Rich text note creation and editing
- Organization with categories and tags
- Search functionality across all notes
- Archive and retrieve capability
- Book tracking with progress indicators
- Reading statistics and analytics
- Custom reading lists and collections
- Reading time estimation and tracking
- User achievement system
- Customizable reward points for actions
- Coupon generation and redemption
- Promotional offers management
npm run buildnpm run build --configuration=productionnpm run serve:ssr:ghost-blogs-feThe project includes a GitHub Actions workflow for automatic deployment to AWS EC2:
- Push changes to the main branch
- GitHub Actions builds the application with SSR
- The build artifacts are deployed to EC2 via SSH
- PM2 restarts the application
This project follows Angular's official style guide and best practices:
- Properly typed interfaces for all data models
- Lazy-loaded feature modules
- Component-based architecture
- Reactive programming with RxJS
- Standalone components where appropriate
- Pure pipes for view transformations
- Clean, maintainable code with proper naming conventions
- Chrome (latest)
- Firefox (latest)
- Safari (latest)
- Edge (latest)
- Fork the repository
- Create a feature branch:
git checkout -b feature/my-feature - Commit your changes:
git commit -am 'Add new feature' - Push to the branch:
git push origin feature/my-feature - Submit a pull request
© 2021 Dang Trinh. All Rights Reserved.
This is a personal blog project with All Rights Reserved licensing. No part of this codebase or its content may be used commercially by anyone except the copyright holder. For permissions, please contact [thdang1009@gmail.com].