Overview
Pole Pedia is a cheap imitation of Wikipedia that is built using Remix as its underlying technology. The project offers an alternative platform for users to access and contribute to a collection of information, similar to how Wikipedia operates.
Features
- Uses Remix as the underlying technology.
- Provides a platform for users to contribute and access information.
- Relies on PostgreSQL for database management.
- Utilizes specific PostgreSQL extensions specified in migration files.
- Uses Prisma for database operations, with commands such as
npx prisma db pushto create the database andnpx prisma migrate devto create the schemas. - Offers seeding functionality with the command
npx prisma db seed. - Includes testing capabilities with Cypress and Vitest.
- Implements TypeScript for type checking, providing an enhanced in-editor experience.
- Utilizes ESLint for linting and Prettier for auto-formatting.
Installation
- Set up the development server.
- Connect to your database by configuring the corresponding information in the
.envfile. - Use
npx prisma db pushto create the database. Note that it will not create the schemas due to the usage of specific PostgreSQL extensions. To create the schemas, runnpx prisma migrate dev. - Optionally, you can seed the database with sample data using
npx prisma db seed. - Install the necessary dependencies for testing and type checking by running
npm install. - To run type checking across the whole project, execute
npm run typecheck. - For linting, the project uses ESLint. Ensure you have an editor plugin like the VSCode Prettier plugin for auto-formatting on save. Additionally, there’s a script
npm run formatavailable to format all files in the project.
Summary
Pole Pedia is a low-cost alternative to Wikipedia, built using Remix. It provides users with a platform to contribute and access information, utilizing features such as PostgreSQL for database management, Prisma for database operations, and TypeScript for enhanced type checking. The project also includes testing with Cypress and Vitest, as well as linting and auto-formatting using ESLint and Prettier.