Skip to content

About

Resources

Stars

0 stars

Watchers

1 watching

Forks

Repository files navigation

🛠️ Issue Tracker & Voting App

A high-performance, memory-efficient issue management system built with the Next.js App Router, Prisma, and Supabase. This project was designed with a focus on large-scale system architecture and a Git-based workflow to facilitate peer-to-peer mentoring.

🚀 Tech Stack

📦 Features

  • Memory-Optimized Schema: Designed to handle large datasets with efficient indexing.
  • P2P Mentoring Workflow: Git-based architecture forcing junior members to learn open-source standards.
  • Role-Based Assignment: Issues are linked to specific users via CUIDs.
  • Real-time Ready: Leveraging Supabase's PostgreSQL backbone for future real-time updates.

🛠️ Getting Started

1. Clone the repository

git clone [https://github.com/your-username/your-repo-name.git](https://github.com/your-username/your-repo-name.git)
cd your-repo-name

2. Install dependencies

npm install

3. Environment Setup

Create a .env file in the root directory and add your Supabase connection strings. Ensure you use the Transaction Pooler for port 6543 and the Direct Connection for migrations.

DATABASE_URL="postgresql://postgres.[REF]:[PASS]@aws-0-[REGION][.pooler.supabase.com:6543/postgres?pgbouncer=true](https://.pooler.supabase.com:6543/postgres?pgbouncer=true)"
DIRECT_URL="postgresql://postgres.[REF]:[PASS]@aws-0-[REGION][.pooler.supabase.com:5432/postgres](https://.pooler.supabase.com:5432/postgres)"

NEXTAUTH_SECRET="your-secret"
NEXTAUTH_URL="http://localhost:3000"

GOOGLE_CLIENT_ID="your-google-id"
GOOGLE_CLIENT_SECRET="your-google-secret"

4. Database Migration

Push the schema to your Supabase instance:

npx prisma migrate deploy

5. Seed the Database

To populate the app with technical dummy data for testing (System Architecture and Frontend tasks):

npx prisma db seed

🏗️ Architecture

The project uses a monorepo-ready structure:

  • /prisma: Contains the schema.prisma and seeding scripts.
  • /app: Next.js App Router logic, including Server Actions for data mutation.
  • /components: Reusable UI components (e.g., GlassIconButton using the iconName prop).

🤝 Contributing

This project is built to encourage mentoring.

  1. Pick an issue from the Issues tab.
  2. Create a feature branch.
  3. Submit a PR for a code review by a senior member.

Developed by Abir - Focused on large-scale, memory-efficient systems.


---

### A few tips for your README:
* **The "Mentoring" Section:** I included a section about your contribution workflow, as you mentioned you want this project to help junior members learn.
* **The Icon Reference:** I added a note about the `GlassIconButton` using `iconName` to ensure anyone else working on the project follows your specific architectural rule.
* **Prisma Commands:** I included the `migrate deploy` command instead of `migrate dev` since you've already set up your database.

**Would you like me to add a "Project Roadmap" section to the README detailing the upcoming voting features?**

About

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages