Faculty Acivity Tracker ("FAT") is a dashboard-driven app to be used by the faculty and merit committee of Northeastern College of Arts, Media and Design (CAMD) at Northeastern University to log and view their extra curricular activities. Faculty members report their extra curricular involvement through their view of the app, and merit committee reviews and scores all submissions through their dashboard.
- Next.js - Web development framework
- Tailwind CSS - CSS framework
- NextAuth.js - Authentication
- Prisma - ORM
- PostgreSQL - Database
Deploy the entire project sans database with Vercel:
.
├── prisma
│ └── schema.prisma
├── public
│ └── media/
├── src
│ ├── client/
│ ├── components/
│ ├── middleware.ts
│ ├── models/
│ ├── pages/
│ ├── services/
│ ├── shared/
│ ├── store/
│ └── styles/
prisma/
- Prisma-related files, including schemas and seed scripts.public/
- Static content, including any images used in app.src/
client/
- Functions for making calls to API.components/
- React components used in the frontend pages.middleware.ts
- Middleware for authentication (protecting routes).models/
- Type definitions for models, dtos, and any other necessary types.pages/
- Contains all pages/routes for both frontend and backend (uses the Pages Router).services/
- Functions for interacting with Prisma/database.shared/
- Various shared items, including components and utils.store/
- Redux store logic.styles/
- Any necessary stylesheets.
Before you start you will need the following:
- Clone the repo.
git clone [email protected]:sandboxnu/faculty-activity-tracker.git
cd faculty-activity-tracker
- Install the necessary dependencies.
npm install
-
Configure the
.env
file by following the template in.env.example
. See Setting up the environment. -
Run the docker container.
docker compose up -d
Note: The
docker-compose.yml
file sets thePOSTGRES_USER
as "sandbox",POSTGRES_PASSWORD
as "chongus", andPOSTGRES_DB
as "fat" by default.
- Sync your database.
npx prisma migrate dev
- Run the application.
npm run dev
Open http://localhost:3000 with your browser to see the results!
- Create a new file called
.env
or copy the.env.example
and rename it to.env
.
cp .env.example .env
- Complete the file to add your environment variables.
DATABASE_URL="postgresql://sandbox:chongus@localhost:5432/fat?schema=public"
GOOGLE_CLIENT_ID=
GOOGLE_CLIENT_SECRET=
NEXTAUTH_SECRET=
To generate GOOGLE_CLIENT_ID
and GOOGLE_CLIENT_SECRET
, see Setting up OAuth 2.0. To generate a new NEXTAUTH_SECRET
, run the following command in your terminal and add it to the .env
file.
openssl rand -base64 32