Lowstack is a modern, high-performance educational resource platform designed for university students. It simplifies the process of finding, sharing, and managing study materials such as notes, previous year questions (PYQs), and branch-specific resources.
- University-Centric Experience: Filter content based on your specific university and branch.
- Resource Management: Organized hierarchy for Semesters, Subjects, and Documents.
- In-Browser PDF Viewer: Premium document viewing experience with built-in library support.
- Personalization: Save "Favourites" and track your most-used resources.
- Responsive Design: Fully optimized for mobile, tablet, and desktop viewing using Tailwind CSS and DaisyUI.
- Secure Authentication: Powering user sessions with NextAuth.js.
- Seamless Payments: Integrated Razorpay for contributions (Hall of Punya) or premium services.
- Fast Search & Feed: Discovery-focused interface with branch-wise feeds.
- Frontend: Next.js 14 (App Router), React 18, Tailwind CSS, DaisyUI.
- Backend: Next.js Server Components/Actions, Prisma ORM.
- Database: MySQL/PostgreSQL (configured via Prisma).
- Storage: AWS S3 / DigitalOcean Spaces for document hosting.
- Authentication: NextAuth.js (Auth.js).
- Payments: Razorpay.
- Email: Mailjet.
- State Management: Zustand & SWR.
- Node.js (v18 or later)
- npm or yarn
- A database instance (MySQL/PostgreSQL)
-
Clone the repository:
git clone https://github.com/kunwarxshashank/Lowstack.git cd Lowstack -
Install dependencies:
npm install
-
Environment Setup: Create a
.envfile in the root directory and fill in the required variables (refer to Environment Variables).cp .env.example .env
-
Database Migration:
npx prisma generate npx prisma db push
-
Run the development server:
npm run dev
Open http://localhost:3015 in your browser.
Required variables for the application to function correctly:
| Variable | Description |
|---|---|
DATABASE_URL |
Prisma connection string for your database. |
NEXTAUTH_SECRET |
Secret used to hash tokens for NextAuth. |
NEXTAUTH_URL |
Canonical URL of your site. |
S3_ENDPOINT_URL |
Endpoint for AWS S3 or DigitalOcean Spaces. |
S3_ACCESS_KEY_ID |
Access key for S3 storage. |
S3_SECRET_ACCESS_KEY |
Secret key for S3 storage. |
RAZORPAY_KEY_ID |
Razorpay API Public Key. |
RAZORPAY_KEY_SECRET |
Razorpay API Private Secret. |
Refer to .env.example for a complete list of configuration options.
npm run dev: Starts the development server on port 3015.npm run build: Generates Prisma client and builds the Next.js application.npm run start: Starts the production server.npm run lint: Runs ESLint for code quality checks.npm run type-check: Runs TypeScript type checking.
We welcome contributions! Please see our CONTRIBUTING.md for details on how to get involved.
This project is licensed under the ISC License.