A collaborative platform designed for university students to showcase their academic projects, fostering knowledge sharing and collaboration within the university community.
- Project Showcase: Upload and share your academic projects with the community
- Explore Projects: Discover and learn from projects created by other students
- User Profiles: Create and customize your profile to showcase your work
- Project Management: Create, edit, and manage your project submissions
- Interactive Dashboard: Track your projects and engagement
- Analytics Dashboard: Monitor platform usage and engagement metrics
- User Management: Manage user accounts and permissions
- Project Moderation: Review and moderate project submissions
- University Management: Add and manage university listings
- Report System: Handle user reports and feedback
- Framework: Next.js 16 with App Router
- Frontend: React 19, TypeScript
- Styling: Tailwind CSS, Radix UI
- Database: MongoDB (local or Atlas)
- Authentication: NextAuth.js
- Storage: Firebase Storage
- Package Manager: pnpm
- Node.js 20.x or higher
- pnpm (install via
npm install -g pnpm) - MongoDB (local installation or MongoDB Atlas account)
- Firebase project (for storage)
-
Clone the repository:
git clone https://github.com/Kavirubc/makerslab.git cd makerslab -
Install dependencies:
pnpm install
-
Set up environment variables:
Copy the sample environment file and configure it:
cp .env.sample .env.local
Edit
.env.localwith your configuration:- MongoDB connection string
- NextAuth secret
- Firebase credentials (both Admin SDK and Client SDK)
-
Seed universities (optional):
pnpm seed:universities
-
Run the development server:
pnpm dev
Open http://localhost:3000 in your browser.
To promote a user to admin:
pnpm promote:adminFollow the prompts to enter the user's email address.
makerslab/
├── app/ # Next.js app directory
│ ├── admin/ # Admin dashboard pages
│ ├── explore/ # Project exploration
│ ├── profile/ # User profiles
│ ├── projects/ # Project pages
│ └── ...
├── components/ # React components
├── lib/ # Utility functions and configurations
├── public/ # Static assets
├── scripts/ # Database scripts
└── types/ # TypeScript type definitions
pnpm dev- Start development serverpnpm build- Build for productionpnpm start- Start production serverpnpm lint- Run ESLintpnpm seed:universities- Seed university datapnpm promote:admin- Promote user to admin
We welcome contributions! Please read our Contributing Guidelines before submitting pull requests.
- All commits must be signed (GPG or SSH)
- Follow the conventional commits format
- Create feature branches from
main - Submit pull requests targeting
main
See CONTRIBUTING.md for detailed guidelines on:
- Commit signing setup (GPG/SSH)
- Branching strategy
- Commit message format
- Pull request templates
- Issue reporting
See the Contributors Page for a list of people who have contributed to this project.
This project is private and proprietary. All rights reserved.
For questions or support:
- Open an issue on GitHub
- Contact the maintainers
Built by koders for coders