|
1 | | -# Angular Blog Application |
| 1 | +# Angular Blog Application |
| 2 | + |
| 3 | + |
| 4 | + |
| 5 | + |
| 6 | + |
| 7 | + |
2 | 8 |
|
3 | 9 | A modern, feature-rich blog application built with Angular 19 and Supabase. This application provides a responsive, user-friendly interface for reading blog posts and an admin panel for content management. |
4 | 10 |
|
| 11 | +--- |
| 12 | + |
5 | 13 | ## Features |
6 | 14 |
|
7 | 15 | ### Reader Interface |
8 | | - |
9 | | -- **Blog Post Listing**: Browse all published blog posts with previews |
10 | | -- **Post Details**: View full blog posts with formatted content |
11 | | -- **Comments System**: Read and add comments to blog posts |
12 | | -- **Code Highlighting**: Syntax highlighting for code blocks with expandable modal view |
13 | | -- **Responsive Design**: Optimized for all device sizes using Tailwind CSS and DaisyUI |
| 16 | +- **Blog Post Listing**: Browse all published blog posts with previews. |
| 17 | +- **Post Details**: View full blog posts with formatted content. |
| 18 | +- **Comments System**: Read and add comments to blog posts. |
| 19 | +- **Code Highlighting**: Syntax highlighting for code blocks with expandable modal view. |
| 20 | +- **Responsive Design**: Optimized for all device sizes using Tailwind CSS and DaisyUI. |
14 | 21 |
|
15 | 22 | ### Admin Interface |
| 23 | +- **Authentication**: Secure admin access with Supabase authentication. |
| 24 | +- **Post Management**: Create, edit, and delete blog posts. |
| 25 | +- **Rich Text Editor**: Quill-based editor with support for formatting, images, and code blocks. |
| 26 | +- **Unsaved Changes Protection**: Guards against accidental navigation away from unsaved content. |
| 27 | + |
| 28 | +--- |
16 | 29 |
|
17 | | -- **Authentication**: Secure admin access with Supabase authentication |
18 | | -- **Post Management**: Create, edit, and delete blog posts |
19 | | -- **Rich Text Editor**: Quill-based editor with support for formatting, images, and code blocks |
20 | | -- **Unsaved Changes Protection**: Guards against accidental navigation away from unsaved content |
| 30 | +## Screenshots |
| 31 | +Add screenshots or GIFs here to showcase the reader and admin interfaces. |
| 32 | + |
| 33 | +--- |
21 | 34 |
|
22 | 35 | ## Technologies Used |
23 | 36 |
|
24 | 37 | ### Frontend |
25 | | - |
26 | | -- **Angular 19**: Latest version with standalone components and signals |
27 | | -- **NgRx Signals**: For state management |
28 | | -- **Tailwind CSS**: For styling with utility classes |
29 | | -- **DaisyUI**: Component library for Tailwind CSS |
30 | | -- **Quill Editor**: Rich text editor for content creation |
31 | | -- **Highlight.js**: Syntax highlighting for code blocks |
| 38 | +- **Angular 19** |
| 39 | +- **NgRx Signals** |
| 40 | +- **Tailwind CSS** |
| 41 | +- **DaisyUI** |
| 42 | +- **Quill Editor** |
| 43 | +- **Highlight.js** |
32 | 44 |
|
33 | 45 | ### Backend |
| 46 | +- **Supabase**: Backend-as-a-Service (PostgreSQL, Authentication, Storage, Functions). |
| 47 | + |
| 48 | +### Development |
| 49 | +- **Angular SSR** |
| 50 | +- **TypeScript** |
| 51 | +- **Webpack Bundle Analyzer** |
34 | 52 |
|
35 | | -- **Supabase**: Backend-as-a-Service for: |
36 | | - - Database (PostgreSQL) |
37 | | - - Authentication |
38 | | - - Storage |
39 | | - - Serverless Functions |
40 | | - |
41 | | -### Development & Deployment |
42 | | - |
43 | | -- **Angular SSR**: Server-Side Rendering for improved performance and SEO |
44 | | -- **TypeScript**: For type-safe code |
45 | | -- **Webpack Bundle Analyzer**: For optimizing bundle size |
46 | | - |
47 | | -## Project Structure |
48 | | - |
49 | | -``` |
50 | | -src/ |
51 | | -├── app/ |
52 | | -│ ├── admin/ # Admin interface components and services |
53 | | -│ ├── auth/ # Authentication components and guards |
54 | | -│ ├── reader/ # Public blog reading interface |
55 | | -│ ├── services/ # Shared services |
56 | | -│ ├── shared/ # Shared components |
57 | | -│ ├── types/ # TypeScript type definitions |
58 | | -│ └── utils/ # Utility functions |
59 | | -├── environments/ # Environment configuration |
60 | | -└── styles.scss # Global styles |
61 | | -``` |
| 53 | +--- |
62 | 54 |
|
63 | 55 | ## Setup and Installation |
64 | 56 |
|
65 | 57 | ### Prerequisites |
66 | | - |
67 | 58 | - Node.js (v18 or later) |
68 | 59 | - npm (v10 or later) |
69 | 60 | - Angular CLI (v19 or later) |
70 | 61 |
|
71 | 62 | ### Installation Steps |
72 | | - |
73 | | -1. Clone the repository |
74 | | - ```bash |
75 | | - git clone <repository-url> |
76 | | - cd angular-blog-app |
77 | | - ``` |
78 | | - |
79 | | -2. Install dependencies |
| 63 | +1. Clone the repository: |
80 | 64 | ```bash |
81 | | - npm install |
82 | | - ``` |
83 | | - |
84 | | -3. Set up environment variables |
85 | | - - Create a Supabase project at [supabase.com](https://supabase.com) |
86 | | - - Update the environment files with your Supabase URL and anon key |
87 | | - |
88 | | -4. Run the development server |
89 | | - ```bash |
90 | | - npm start |
91 | | - ``` |
92 | | - |
93 | | -5. Navigate to `http://localhost:4200/` to view the application |
94 | | - |
95 | | -## Building for Production |
96 | | - |
97 | | -Run `npm run build` to build the project for production. The build artifacts will be stored in the `dist/` directory. |
98 | | - |
99 | | -## Deployment |
100 | | - |
101 | | -The application can be deployed to any static hosting service that supports Angular applications with SSR, such as: |
102 | | - |
103 | | -- Vercel |
104 | | -- Netlify |
105 | | -- Firebase APP Hosting |
106 | | - |
107 | | -## Contributing |
108 | | - |
109 | | -Contributions are welcome! Please feel free to submit a Pull Request. |
110 | | - |
111 | | -## License |
112 | | - |
113 | | -This project is licensed under the MIT License - see the LICENSE file for details. |
| 65 | + git clone https://github.com/Lukecsharpwalker/angularBlog.git |
| 66 | + cd angularBlog |
0 commit comments