Crypt is a web application designed to provide students with a safe and confidential space to discuss academic topics, share insights and connect with a supportive community anonymously. It is specifically built for students to engage in open, honest conversations without revealing their identities.
- π Getting Started
- β¨ Features
- π Scripts
- π Technologies Used
- π€ Contributing
- π License
Before you begin, ensure you have the following installed:
- Node.js: Install the latest LTS version from nodejs.org
- pnpm: Install pnpm globally using
npm install -g pnpm
-
Clone the repository
-
Navigate to the project directory:
cd Crypt
-
Install dependencies:
pnpm install
-
Copy the example environment variables file and configure it:
cp .env.example .env
Rename the
.env.example
file to.env
and update it with your configuration. -
Run the development server:
pnpm dev
The app will be running at http://localhost:3000.
- π Infinite scrolling for dynamically loading posts
- π Authentication using NextAuth & Google
- π° Custom feed for authenticated users
- π₯Trending feed for featured posts
- β‘ Advanced caching using Upstash Redis
- π Optimistic updates for a great user experience
- π‘ Modern data fetching using React Query
- π A beautiful and highly functional post editor
- πΌοΈ Image uploads & link previews
- π¬ Full comment functionality with nested replies
-
Start Development Server:
pnpm dev
-
Build for Production:
pnpm build
-
Start Production Server:
pnpm start
- Next.js: React framework for server-rendered applications.
- TypeScript: Type safe superset of JavaScript.
- Tailwind CSS: Utility-first CSS framework.
- Prisma: ORM in conjunction with PostgreSQL DB.
- Editor.js: Block-styled editor for rich text content.
- UploadThing: Simple file uploading solution.
- Redis: Caching backend for post-processing.
Contributions are welcome! Please open an issue or submit a pull request for any improvements. Before contributing, please take a moment to review the guidelines below.
- Fork the repository: Create your own copy of the repository.
- Create a branch: Create a new branch for each feature or bug fix.
- Make your changes: Make the necessary changes in your branch.
- Test your changes: Ensure everything works correctly and build successfully.
- Submit a pull request: Open a pull request to merge your changes into the main repository.
Please follow the guidelines and make sure your contributions are aligned with the project goals.
This project is licensed under the MIT License - see the LICENSE file for details.
In short, when you submit code changes, your submissions are understood to be under the same MIT License that covers the project. Feel free to contact the maintainers if that's a concern.
Made with β€οΈ by Soham Gupta