Scriptorium is a modern online platform designed for coding enthusiasts to write, execute, and share code in multiple programming languages. Inspired by the ancient scriptorium—a space where manuscripts were created and preserved—this digital scriptorium provides a secure, innovative environment for coders to experiment, refine, and save their work as reusable templates.
Scriptorium offers a rich set of features to improve the coding experience:
- Supports multiple programming languages: C, C++, Java, Python, JavaScript, etc.
- Real-time syntax highlighting for improved code readability.
- Execute code and view the output in real time.
- Supports standard input (stdin) for testing interactive programs.
- Displays error messages for easier debugging.
- Code runs in an isolated, secure environment to prevent interference with other users or the system.
- Enforces memory and time limits to handle long-running or resource-intensive code.
-
Utilizes my CodeVecClassifier model for algorithm identification.
-
Automatically classify the type of algorithm in your Python code.
-
Highlight the specific parts of the code with your mouse to get an accurate classification.
-
Supports various algorithm types such as sorting, searching, DFS, BFS, etc.
- Create, edit, and delete blog posts that can include links to code templates.
- Comment on or reply to existing blog posts.
- Upvote or downvote blog posts and comments.
- Browse and search blog posts by title, tags, or linked templates.
- Report blog posts or comments for inappropriate content, including optional explanations.
- Admins can manage reported content and hide inappropriate posts.
- Clean and intuitive design for a seamless user experience.
- Responsive across all devices: desktop, tablet, and mobile.
- Light and dark themes for personalized comfort.
The application is built using the following technologies:
-
Backend:
- Next.js
- Prisma ORM
- REST API
-
Frontend:
-
Environment & Tools:
- Docker
- Node.js 20+
- Ubuntu 22.04
- GCC, G++, Python 3.10+, Java 20+
Follow these steps to set up the project on your local machine:
Ensure you have the following installed:
- Docker
- Node.js 20+
- Ubuntu 22.04 (or ensure compatibility with a similar environment)
git clone <repository_url>
cd <repository_folder>