View on GitHub

incap

Test Project: MEAN stack with Typescript

Functional Presentation

Application Purpose

INCAP is a collaborative blogging platform that allows a community to share knowledge and ideas through articles and discussions. It’s designed to be a multidisciplinary knowledge-sharing platform where users can contribute content across various topics.

Core Features

1. Article Management

Capabilities:

Key Attributes:

2. Category Management

Capabilities:

Purpose: Categories serve as a taxonomy system to organize articles thematically, making content discovery intuitive.

3. User Management

Capabilities:

User Attributes:

4. Frontend Interface

Main Pages:

User Experience:

User Workflows

Content Creator Workflow

1. User logs in/registers
2. Navigates to Admin panel → Create Article
3. Selects category and writes content
4. Publishes article (becomes visible to all)
5. Can later edit or delete the article

Content Consumer Workflow

1. User visits the site
2. Browses articles on the home page
3. Filters articles by category
4. Reads individual articles
5. No credentials required for viewing

Administrator Workflow

1. Admin logs in with elevated privileges
2. Accesses the Admin panel
3. Manages articles, categories, and users
4. Monitors and moderates content
5. Generates reports and exports

Content Organization

Articles

Categories

Users

API Endpoints

All endpoints are RESTful and follow standard HTTP methods:

Articles

Categories

Users

Data Model Overview

┌─────────────────┐
│    Category     │
├─────────────────┤
│ id              │
│ name            │
│ description     │
└────────┬────────┘
         │
         │ 1:* relationship
         ↓
┌─────────────────┐      ┌──────────────┐
│     Article     │◄─────┤    Author    │
├─────────────────┤      │   (User)     │
│ id              │      └──────────────┘
│ title           │
│ content         │
│ category (FK)   │
│ author (FK)     │
└─────────────────┘

Security Considerations


For technical implementation details, see Backend Technical Details and Frontend Technical Details.