Skip to content

Jesselpetry/d-youth-dropbox

Repository files navigation

Banner

D-Youth Dropbox

A social platform for the Democratic Youth (D-Youth) community in Thailand.
Post anonymous or named messages to a shared wall, browse member profiles, and exchange direct notes.

Next.js TypeScript Tailwind CSS Supabase Vercel MIT License

Live Demo · Report Bug · Request Feature


✨ Features

  • Public Wall — Post coloured sticky-note messages visible to everyone; supports anonymous mode.
  • Direct Messages — Send private notes to any member; colour-coded paper style.
  • Family Directory — Browse all D-Youth members grouped by cohort year, with instant search.
  • Profile Management — Upload an avatar, set your nickname, province, cohort year, and Instagram handle.
  • Google OAuth — One-click sign-in via Supabase Auth.
  • Responsive UI — Mobile-first design with a fixed bottom navigation bar.
  • Performance — Vercel Analytics + Speed Insights built-in.

🛠 Tech Stack

Category Technology
Framework Next.js 15 (App Router)
Language TypeScript 5
Styling Tailwind CSS 4
Backend / DB Supabase (PostgreSQL, Auth, Storage)
Animations Framer Motion
Icons React Icons
Hosting Vercel

🚀 Getting Started

Prerequisites

Installation

# 1. Clone the repository
git clone https://github.com/Jesselpetry/D-Youth-Dropbox.git
cd D-Youth-Dropbox

# 2. Install dependencies
npm install

# 3. Configure environment variables
cp .env.example .env.local
# Edit .env.local and fill in your Supabase credentials (see below)

# 4. Start the development server
npm run dev

Open http://localhost:3000 in your browser.

Environment Variables

Create a .env.local file in the project root:

NEXT_PUBLIC_SUPABASE_URL=https://<your-project>.supabase.co
NEXT_PUBLIC_SUPABASE_ANON_KEY=<your-anon-key>
NEXT_PUBLIC_SITE_URL=http://localhost:3000   # change to your production URL for deployments

Never commit .env.local to version control. It is already excluded by .gitignore.

Available Scripts

Command Description
npm run dev Start the development server (Turbopack)
npm run build Create a production build
npm run start Start the production server
npm run lint Run ESLint

🌐 Deployment

The project is designed to be deployed on Vercel.

  1. Push your code to GitHub.
  2. Import the repository in the Vercel dashboard.
  3. Add the three environment variables listed above under Settings → Environment Variables.
  4. Click Deploy.

For detailed setup instructions see SETUP.md.


📁 Documentation

Document Description
docs/architecture.md Project structure, rendering strategy, auth flow
docs/database-schema.md Table definitions and relationships
docs/api-endpoints.md Supabase query patterns used in the app

🤝 Contributing

Contributions, issues, and feature requests are welcome!
Please read CONTRIBUTING.md before submitting a pull request.

  1. Fork the project.
  2. Create your feature branch: git checkout -b feature/amazing-feature
  3. Commit your changes: git commit -m 'feat: add amazing feature'
  4. Push to the branch: git push origin feature/amazing-feature
  5. Open a Pull Request.

📄 License

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


Made with ❤️ by the D-Youth community

About

D-Youth Dropbox: A platform for democratic youth that allows users to connect, share messages on a virtual wall, and easily send messages to one another.

Topics

Resources

License

Contributing

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors