Spots πΈ
Spots is a modern, responsive social media platform built for photo sharing and discovery. Connect with friends, express yourself, and personalize your profile β all in a sleek, user-friendly interface that adapts beautifully to any device.

Table of Contents
β¨ Features
Core Functionality
- πΌοΈ Interactive Photo Gallery - Upload, view, and manage photo collections
- β€οΈ Social Interactions - Like and unlike posts with smooth animations
- π€ Profile Management - Edit your name, description, and avatar
- ποΈ Content Control - Delete your own posts with confirmation
- π Image Preview - Full-screen image viewing with captions
User Experience
- π± Fully Responsive Design - Optimized for mobile, tablet, and desktop
- β¨οΈ Keyboard Navigation - ESC key support for closing modals
- β
Form Validation - Real-time input validation with error messages
- π― Click-outside Functionality - Close modals by clicking overlay
- π¨ Modern UI/UX - Clean, intuitive interface design
π οΈ Technologies & Architecture
Frontend Stack
- HTML5 - Semantic markup with accessibility features
- CSS3 - Modern styling with Flexbox, Grid, and CSS custom properties
- Vanilla JavaScript (ES6+) - Modern JavaScript with modules and imports
- BEM Methodology - Scalable and maintainable CSS architecture
- Webpack 5 - Module bundling and asset optimization
- Babel - JavaScript transpilation for browser compatibility
- PostCSS & Autoprefixer - CSS post-processing and vendor prefixes
- CSS Modules - Scoped styling with MiniCssExtractPlugin
- Webpack Dev Server - Hot reload development environment
- ES6 Modules - Modular JavaScript architecture
- Form Validation System - Custom validation with reusable components
- Event Delegation - Efficient event handling
- Asset Optimization - Image and font optimization through Webpack
π Getting Started
Prerequisites
- Node.js (v14 or higher)
- npm (v6 or higher)
Installation
-
Clone the repository:
git clone https://github.com/beamendivil/se_project_spots.git
cd se_project_spots
-
Install dependencies:
-
Start development server:
The application will open automatically at http://localhost:8080
-
Build for production:
Production files will be generated in the dist/
folder
Available Scripts
npm run dev
- Start development server with hot reload
npm run build
- Build optimized production bundle
npm test
- Run test suite (when implemented)
π± Usage
Getting Started
- View Your Profile - See your current profile information and avatar
- Add New Posts - Click the βNew Postβ button to upload photos with captions
- Interact with Content - Like posts by clicking the heart icon
- Edit Profile - Click βEdit Profileβ to update your name and description
- Manage Content - Delete your own posts using the delete button
Key Interactions
- Image Preview - Click any image to view it in full screen
- Form Validation - All forms include real-time validation
- Keyboard Support - Press ESC to close any open modal
- Mobile Friendly - All features work seamlessly on mobile devices
π¨ Design
The UI/UX was meticulously designed using Figma with a focus on modern aesthetics and user experience.
Design System Features:
- Clean, minimalist interface
- Consistent spacing and typography
- Accessible color contrast ratios
- Intuitive iconography and visual hierarchy
π View Figma Design
Responsive Breakpoints
- Desktop: 1280px and above
- Tablet: 768px - 1279px
- Mobile: 320px - 767px
Desktop Interface
Mobile Interface
βοΈ Development
Project Structure
src/
βββ blocks/ # BEM CSS components
βββ images/ # Static assets
βββ pages/ # Main CSS entry point
βββ scripts/ # JavaScript modules
β βββ index.js # Main application entry
β βββ validation.js # Form validation utilities
βββ vendor/ # Third-party styles
Architecture Highlights
- Modular CSS: BEM methodology with component-based organization
- JavaScript Modules: ES6 imports/exports for clean code separation
- Webpack Configuration: Optimized for both development and production
- Form Validation: Reusable validation system with custom error handling
- Event Management: Efficient event delegation and cleanup
Development Workflow
- Code Organization: Follows BEM and modular JavaScript patterns
- Asset Management: Webpack handles all asset processing and optimization
- Hot Reload: Instant feedback during development
- Build Optimization: Production builds are minified and optimized
π Live Demo
Links
- β‘ Fast loading times with optimized assets
- π± Smooth mobile experience
- π Efficient DOM manipulation
- πΎ Lightweight JavaScript bundle
Bea Mendivil - Software Engineer
π§ Email: bea@curatedtucson.com
π GitHub: @beamendivil
Built with β€οΈ using modern web technologies