← Back to portfolio

Case study · Full-stack community platform

Grown.MT

A practical community platform built with PHP, MySQL and JavaScript, covering account management, social features, messaging, media, privacy and moderation.

Personal Project

Project overview

Grown.MT is a full-stack community platform designed to bring user profiles, posts, diaries, private conversations and media sharing into one responsive application. It provided hands-on experience across the full delivery cycle: interface design, backend logic, database structure, security controls, testing and deployment.

Problem being solved

The project addresses the need for a focused community space where members can create accounts, control their privacy, publish different types of content and communicate securely. It also gives moderators practical tools for reviewing reports and managing inappropriate content.

My role

I independently planned, designed, developed, tested and deployed the application. My work covered the relational database, PHP backend, browser interface, account workflows, permissions, media processing, email delivery, hosting configuration and ongoing feature maintenance.

Technologies used

  • PHP
  • MySQL
  • JavaScript
  • HTML5
  • CSS3
  • PHPMailer
  • Cloudflare
  • cPanel
  • Shared hosting

Key features

  • Registration, login, email verification and password recovery
  • User profiles, follows, posts, comments, likes and diaries
  • Private messaging and application notifications
  • Image and video uploads with media galleries
  • Privacy controls and role-based permissions
  • User reporting and moderator review tools
  • Responsive layouts for mobile, tablet and desktop

Technical implementation

Authentication and sessions

PHP handles registration, login and session-based account state. Authentication flows were designed so protected pages and actions check the signed-in user before returning private data or changing records.

Relational database design

MySQL tables and relationships support users, profiles, content, follows, messages, notifications, media, permissions and reports. Related data is kept in separate tables so it can be queried and maintained consistently.

Email verification and password recovery

Account verification and password-reset flows use time-limited tokens delivered through PHPMailer. The implementation separates these workflows from normal authentication and avoids exposing whether sensitive account data exists.

Roles and permissions

Backend permission checks distinguish normal user actions from moderation capabilities. Interface visibility improves usability, while server-side authorization remains responsible for protecting each operation.

Messaging and notifications

Private messages are associated with their sender and recipient, with access limited to conversation participants. Notifications connect relevant application events to the affected user and support read-state tracking.

Media uploads

Image and video workflows validate accepted files, use controlled filenames and store media references separately from application content. The user interface preserves media aspect ratios and adapts galleries to smaller screens.

Privacy and moderation

Privacy settings influence who can view selected profile and content information. Reporting tools allow users to flag material, while a permission-protected moderation area supports structured review and follow-up.

Responsive layouts and deployment

Mobile-first CSS keeps navigation, feeds, profiles, messages and management interfaces usable across screen sizes. The application is deployed through cPanel on shared hosting, with production configuration and database management kept outside public source files.

Security considerations

  • Prepared SQL statements keep user input separate from database queries.
  • Passwords are stored using PHP password hashing and verified with the matching secure API.
  • CSRF tokens protect state-changing form submissions.
  • Input is validated according to its purpose and output is escaped for its HTML context.
  • Permissions are checked on the server before private data is read or modified.
  • Upload validation restricts accepted media and avoids trusting the original filename.
  • Sensitive credentials, database passwords and private keys are kept out of public code and documentation.

Challenges and solutions

Coordinating connected features

Social features affect multiple areas of the application. I separated database responsibilities and kept authorization checks close to each backend action so new features could be introduced without weakening existing privacy rules.

Handling media reliably

Media uploads introduce file-size, format, storage and display concerns. I added server-side validation, controlled storage paths and responsive rendering so uploaded content remains manageable and usable.

Operating on shared hosting

Shared hosting has practical limits and a different deployment workflow from local development. I adapted configuration, email delivery, database imports and file permissions to the cPanel environment while keeping secrets out of web-accessible files.

What I learned

Building Grown.MT strengthened my understanding of how frontend behavior, backend rules and relational data must work together. It also improved my approach to authentication, permissions, defensive validation, debugging and maintaining a growing application after deployment.

Each placeholder opens at full size in a new tab. Replace the image paths, dimensions and alternative text when real screenshots are ready.