Skip to content

galafis/Javascript-Fullstack-Capstone-Project

Repository files navigation

πŸš€ Javascript Fullstack Capstone Project

Coursera - IBM Fullstack

JavaScript License

English | PortuguΓͺs


English

🎯 Overview

Javascript Fullstack Capstone Project is a production-grade JavaScript application complemented by CSS, HTML that showcases modern software engineering practices including clean architecture, comprehensive testing, containerized deployment, and CI/CD readiness.

The codebase comprises 2,327 lines of source code organized across 32 modules, following industry best practices for maintainability, scalability, and code quality.

✨ Key Features

  • πŸ“ Clean Architecture: Modular design with clear separation of concerns
  • πŸ§ͺ Test Coverage: Unit and integration tests for reliability
  • πŸ“š Documentation: Comprehensive inline documentation and examples
  • πŸ”§ Configuration: Environment-based configuration management

πŸ—οΈ Architecture

graph TB
    subgraph Core["πŸ—οΈ Core"]
        A[Main Module]
        B[Business Logic]
        C[Data Processing]
    end
    
    subgraph Support["πŸ”§ Support"]
        D[Configuration]
        E[Utilities]
        F[Tests]
    end
    
    A --> B --> C
    D --> A
    E --> B
    F -.-> B
    
    style Core fill:#e1f5fe
    style Support fill:#f3e5f5
Loading

πŸš€ Quick Start

Prerequisites

  • Node.js 20+
  • npm or yarn

Installation

# Clone the repository
git clone https://github.com/galafis/Javascript-Fullstack-Capstone-Project.git
cd Javascript-Fullstack-Capstone-Project

# Install dependencies
npm install

Running

# Development mode
npm run dev

# Production build
npm run build
npm start

🐳 Docker

# Start all services
docker-compose up -d

# View logs
docker-compose logs -f

# Stop all services
docker-compose down

# Rebuild after changes
docker-compose up -d --build

πŸ“ Project Structure

Javascript-Fullstack-Capstone-Project/
β”œβ”€β”€ giftlink-backend/
β”‚   β”œβ”€β”€ models/        # Data models
β”‚   β”‚   └── db.js
β”‚   β”œβ”€β”€ routes/
β”‚   β”‚   β”œβ”€β”€ authRoutes.js
β”‚   β”‚   β”œβ”€β”€ giftRoutes.js
β”‚   β”‚   └── searchRoutes.js
β”‚   β”œβ”€β”€ sentiment/
β”‚   β”‚   └── index.js
β”‚   β”œβ”€β”€ util/
β”‚   β”‚   └── import-mongo/
β”‚   β”œβ”€β”€ Dockerfile
β”‚   β”œβ”€β”€ app.js
β”‚   β”œβ”€β”€ deployment.yml
β”‚   β”œβ”€β”€ logger.js
β”‚   β”œβ”€β”€ package-lock.json
β”‚   └── package.json
β”œβ”€β”€ giftlink-frontend/
β”‚   β”œβ”€β”€ public/
β”‚   β”‚   β”œβ”€β”€ images/
β”‚   β”‚   β”œβ”€β”€ static/
β”‚   β”‚   β”œβ”€β”€ manifest.json
β”‚   β”‚   └── robots.txt
β”‚   β”œβ”€β”€ src/          # Source code
β”‚   β”‚   β”œβ”€β”€ components/
β”‚   β”‚   β”œβ”€β”€ context/
β”‚   β”‚   β”œβ”€β”€ App.js
β”‚   β”‚   β”œβ”€β”€ config.js
β”‚   β”‚   └── index.js
β”‚   β”œβ”€β”€ Dockerfile
β”‚   β”œβ”€β”€ package-lock.json
β”‚   └── package.json
β”œβ”€β”€ giftwebsite/
β”‚   β”œβ”€β”€ Dockerfile
β”‚   β”œβ”€β”€ index.js
β”‚   β”œβ”€β”€ package-lock.json
β”‚   └── package.json
β”œβ”€β”€ github_issues/
β”‚   β”œβ”€β”€ issue_1_profile.md
β”‚   β”œβ”€β”€ issue_2_add_gift.md
β”‚   β”œβ”€β”€ issue_3_edit_gift.md
β”‚   β”œβ”€β”€ issue_4_delete_gift.md
β”‚   β”œβ”€β”€ issue_5_improve_search.md
β”‚   β”œβ”€β”€ issue_6_sentiment_analysis.md
β”‚   β”œβ”€β”€ issue_7_refactor_auth.md
β”‚   └── issue_8_frontend_styling.md
β”œβ”€β”€ sentiment/
β”‚   β”œβ”€β”€ index.js
β”‚   β”œβ”€β”€ logger.js
β”‚   β”œβ”€β”€ package-lock.json
β”‚   └── package.json
β”œβ”€β”€ tests/         # Test suite
β”‚   └── main.test.js
β”œβ”€β”€ LICENSE
β”œβ”€β”€ README.md
β”œβ”€β”€ deploymongo.yml
β”œβ”€β”€ docker-compose.yml
└── todo.md

πŸ› οΈ Tech Stack

Technology Description Role
JavaScript Core Language Primary
CSS 8 files Supporting
HTML 2 files Supporting

πŸš€ Deployment

Cloud Deployment Options

The application is containerized and ready for deployment on:

Platform Service Notes
AWS ECS, EKS, EC2 Full container support
Google Cloud Cloud Run, GKE Serverless option available
Azure Container Instances, AKS Enterprise integration
DigitalOcean App Platform, Droplets Cost-effective option
# Production build
docker build -t Javascript-Fullstack-Capstone-Project:latest .

# Tag for registry
docker tag Javascript-Fullstack-Capstone-Project:latest registry.example.com/Javascript-Fullstack-Capstone-Project:latest

# Push to registry
docker push registry.example.com/Javascript-Fullstack-Capstone-Project:latest

🀝 Contributing

Contributions are welcome! Please feel free to submit a Pull Request. For major changes, please open an issue first to discuss what you would like to change.

  1. Fork the project
  2. Create your feature branch (git checkout -b feature/AmazingFeature)
  3. Commit your changes (git commit -m 'Add some AmazingFeature')
  4. Push to the branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

πŸ“„ License

This project is licensed under the MIT License - see the LICENSE file for details.

πŸ‘€ Author

Gabriel Demetrios Lafis


PortuguΓͺs

🎯 Visão Geral

Javascript Fullstack Capstone Project Γ© uma aplicaΓ§Γ£o JavaScript de nΓ­vel profissional, complementada por CSS, HTML que demonstra prΓ‘ticas modernas de engenharia de software, incluindo arquitetura limpa, testes abrangentes, implantaΓ§Γ£o containerizada e prontidΓ£o para CI/CD.

A base de cΓ³digo compreende 2,327 linhas de cΓ³digo-fonte organizadas em 32 mΓ³dulos, seguindo as melhores prΓ‘ticas do setor para manutenibilidade, escalabilidade e qualidade de cΓ³digo.

✨ Funcionalidades Principais

  • πŸ“ Clean Architecture: Modular design with clear separation of concerns
  • πŸ§ͺ Test Coverage: Unit and integration tests for reliability
  • πŸ“š Documentation: Comprehensive inline documentation and examples
  • πŸ”§ Configuration: Environment-based configuration management

πŸ—οΈ Arquitetura

graph TB
    subgraph Core["πŸ—οΈ Core"]
        A[Main Module]
        B[Business Logic]
        C[Data Processing]
    end
    
    subgraph Support["πŸ”§ Support"]
        D[Configuration]
        E[Utilities]
        F[Tests]
    end
    
    A --> B --> C
    D --> A
    E --> B
    F -.-> B
    
    style Core fill:#e1f5fe
    style Support fill:#f3e5f5
Loading

πŸš€ InΓ­cio RΓ‘pido

Prerequisites

  • Node.js 20+
  • npm or yarn

Installation

# Clone the repository
git clone https://github.com/galafis/Javascript-Fullstack-Capstone-Project.git
cd Javascript-Fullstack-Capstone-Project

# Install dependencies
npm install

Running

# Development mode
npm run dev

# Production build
npm run build
npm start

🐳 Docker

# Start all services
docker-compose up -d

# View logs
docker-compose logs -f

# Stop all services
docker-compose down

# Rebuild after changes
docker-compose up -d --build

πŸ“ Estrutura do Projeto

Javascript-Fullstack-Capstone-Project/
β”œβ”€β”€ giftlink-backend/
β”‚   β”œβ”€β”€ models/        # Data models
β”‚   β”‚   └── db.js
β”‚   β”œβ”€β”€ routes/
β”‚   β”‚   β”œβ”€β”€ authRoutes.js
β”‚   β”‚   β”œβ”€β”€ giftRoutes.js
β”‚   β”‚   └── searchRoutes.js
β”‚   β”œβ”€β”€ sentiment/
β”‚   β”‚   └── index.js
β”‚   β”œβ”€β”€ util/
β”‚   β”‚   └── import-mongo/
β”‚   β”œβ”€β”€ Dockerfile
β”‚   β”œβ”€β”€ app.js
β”‚   β”œβ”€β”€ deployment.yml
β”‚   β”œβ”€β”€ logger.js
β”‚   β”œβ”€β”€ package-lock.json
β”‚   └── package.json
β”œβ”€β”€ giftlink-frontend/
β”‚   β”œβ”€β”€ public/
β”‚   β”‚   β”œβ”€β”€ images/
β”‚   β”‚   β”œβ”€β”€ static/
β”‚   β”‚   β”œβ”€β”€ manifest.json
β”‚   β”‚   └── robots.txt
β”‚   β”œβ”€β”€ src/          # Source code
β”‚   β”‚   β”œβ”€β”€ components/
β”‚   β”‚   β”œβ”€β”€ context/
β”‚   β”‚   β”œβ”€β”€ App.js
β”‚   β”‚   β”œβ”€β”€ config.js
β”‚   β”‚   └── index.js
β”‚   β”œβ”€β”€ Dockerfile
β”‚   β”œβ”€β”€ package-lock.json
β”‚   └── package.json
β”œβ”€β”€ giftwebsite/
β”‚   β”œβ”€β”€ Dockerfile
β”‚   β”œβ”€β”€ index.js
β”‚   β”œβ”€β”€ package-lock.json
β”‚   └── package.json
β”œβ”€β”€ github_issues/
β”‚   β”œβ”€β”€ issue_1_profile.md
β”‚   β”œβ”€β”€ issue_2_add_gift.md
β”‚   β”œβ”€β”€ issue_3_edit_gift.md
β”‚   β”œβ”€β”€ issue_4_delete_gift.md
β”‚   β”œβ”€β”€ issue_5_improve_search.md
β”‚   β”œβ”€β”€ issue_6_sentiment_analysis.md
β”‚   β”œβ”€β”€ issue_7_refactor_auth.md
β”‚   └── issue_8_frontend_styling.md
β”œβ”€β”€ sentiment/
β”‚   β”œβ”€β”€ index.js
β”‚   β”œβ”€β”€ logger.js
β”‚   β”œβ”€β”€ package-lock.json
β”‚   └── package.json
β”œβ”€β”€ tests/         # Test suite
β”‚   └── main.test.js
β”œβ”€β”€ LICENSE
β”œβ”€β”€ README.md
β”œβ”€β”€ deploymongo.yml
β”œβ”€β”€ docker-compose.yml
└── todo.md

πŸ› οΈ Stack TecnolΓ³gica

Tecnologia DescriΓ§Γ£o Papel
JavaScript Core Language Primary
CSS 8 files Supporting
HTML 2 files Supporting

πŸš€ Deployment

Cloud Deployment Options

The application is containerized and ready for deployment on:

Platform Service Notes
AWS ECS, EKS, EC2 Full container support
Google Cloud Cloud Run, GKE Serverless option available
Azure Container Instances, AKS Enterprise integration
DigitalOcean App Platform, Droplets Cost-effective option
# Production build
docker build -t Javascript-Fullstack-Capstone-Project:latest .

# Tag for registry
docker tag Javascript-Fullstack-Capstone-Project:latest registry.example.com/Javascript-Fullstack-Capstone-Project:latest

# Push to registry
docker push registry.example.com/Javascript-Fullstack-Capstone-Project:latest

🀝 Contribuindo

ContribuiΓ§Γ΅es sΓ£o bem-vindas! Sinta-se Γ  vontade para enviar um Pull Request.

πŸ“„ LicenΓ§a

Este projeto estΓ‘ licenciado sob a LicenΓ§a MIT - veja o arquivo LICENSE para detalhes.

πŸ‘€ Autor

Gabriel Demetrios Lafis