SnapCards is a web-based study platform that allows you to create, share, and study quizzes you make from study materials. It automatically scores quiz attempts and provides feedback about correct/incorrect answers and how you're is performing over time. SnapCards can be integrated into a busy college student’s study routine to review lecture material for a quiz, refresh his or her memory of a prerequisite course, or prepare for a cumulative final exam covering months of material.
- Go to snapcards.org
- Create an account
- Make a new quiz or browse quizzes from other users
- Take a quiz and review personalized feedback
- Clone or download the repository main branch
- Install the most recent LTS release of Node.js
- Follow the installation instructions for pnpm
- (Option 1) Deploy a PostgreSQL 17 instance
- Follow the installation instructions
- Create a database for the project
- Create a user with read and write access to the database
- Run the
*.sqlmigrations inserver/migrationsin order <host>for Step 9 will most likely belocalhost
- (Preferred option 2) Use this project's existing instance
- Credentials are available in the documentation report
- Open a terminal at the repository directory in Step 1
- Move to the
site/directory, then runpnpm install - Generate a JWT secret by running
openssl rand 32 | openssl base64 - Create a
.envfile with the following contents, replacing<user>,<pass>,<host>,<database>, and<jwt_secret>with the appropriate values from Steps 4 and 8
DATABASE_URL=postgres://<user>:<pass>@<host>:5432/<database>
JWT_SECRET=<jwt_secret>
- (Option 1) Start the Next.js dev server
- Run
pnpm run dev
- Run
- (Option 2) Or create and start a production build
- Run
pnpm run build && pnpm start - Wait for the build process to finish
- Run
- Navigate to the "Local" url displayed in the terminal window
N.B. The site uses some web APIs only available in secure contexts, so servers without valid TLS certificates must be accessed from localhost (a secure context).
Wonchae Lee, Justin Oh, and Quentin Wright