/crowdr

crowdfunding tracker

Primary LanguageTypeScript


appreciation logo

crowdr

The idea behind crowdr is to serve as a Next.js playground to explore the new Next.js 13 features.

crowdr is a tool for tracking, managing, and viewing crowdfunding projects that users have supported. The application is built using Next.js and Prisma.

crowdr is a proof of concept.

I found the original inspiration in the FrontendMasters Next.js course by Scott Moss, but I significantly rewrote the code and changed the architeture to allow for testing.

Some of the changes include:

  • strict type checking (TypeScript)
  • architecture changes & refactoring
  • unit testing with jest & testing library
  • parallel data fetching for the home page with Suspense boundaries
  • Alert & Modal Dialogs without external dependencies
  • ability to add a reward to a project
  • bug fixes and minimally adjusted styling

The logo comes from undraw. 🩷

Demo ✨

You can check a running demo on Vercel.

Example User:

user@email.com

Example Password:

password12345

Getting Started

Prerequisites

Ensure that you have the following installed on your local development machine:

Installation

First, clone the repository:

git clone https://github.com/sophiabrandt/crowdr.git
cd crowdr

Then, install the dependencies:

pnpm install

Copy the environment variables file (and add the correct values for your use caes):

cp env.example .env

Start docker container:

docker compose up

Run migrations:

pnpm exec prisma migrate dev

Seed:

pnpm exec prisma db seed

Finally, you can start the development server:

pnpm dev

The application should now be running at http://localhost:3000.

Testing

This project uses Jest for testing. To run the tests:

pnpm test