Welcome to the voyage-tasks
project! This README serves as the central guide for understanding, running, and contributing to the project. A well-maintained README is as crucial to a project's success as the code itself, so we encourage you to treat this document with the same care.
- Project Overview
- How to Run the Application
- Environment Setup
- Database Setup and Prisma Migrations
- Team Documents
- Our Team
preview on figma
The voyage-tasks
project is developed by a collaborative team within the Chingu Community. This project aims to streamline task management with features for scheduling appointments, tracking progress, and managing user information. The project is structured using Docker and Prisma for database management, with a backend API developed in Next.js to handle user requests and appointments.
For more insights into writing a great README, refer to this article by an experienced Chingu member: Keys to a well-written README.
Follow these steps to set up and run the application locally:
-
Install Dependencies
First, install the required dependencies by running:
npm install
-
Run Docker Compose
Ensure Docker is installed and running on your machine. Navigate to the root of the project directory and execute:
docker-compose up -d
This command will start a PostgreSQL database as defined in
docker-compose.yml
with persistent storage, ensuring data retention across restarts. -
Set Up Environment Variables
In the root directory, create a
.env
file with the following content:DATABASE_URL="postgresql://docker:docker@localhost:5432/apisippy"
Ensure that
DATABASE_URL
matches the credentials and database settings configured indocker-compose.yml
.Create a environment variable called
AUTH_SECRET
and assign some string (any string) to it. This is used by NextAuth to generate a token. -
Generate Prisma Client
To generate the Prisma client based on the defined schema, run:
npm run prisma:generate
-
Run Prisma Migrations
Apply migrations to the PostgreSQL database to set up the initial schema:
npm run prisma:migrate
This command will create tables and relationships as specified in
prisma/schema.prisma
. -
Start the Development Server
Finally, start the Next.js development server:
npm run dev
The application should now be running locally. Visit http://localhost:3000 to view the project in your browser.
Meeting Agenda Templates | Link |
---|---|
Meeting - Voyage Kickoff | link |
Meeting - App Vision & Feature Planning | link |
Meeting - Sprint Retrospective, Review, and Planning | link |
Meeting - Sprint Open Topic Session | link |
- Sign up for Google Cloud and navigate to your console https://console.cloud.google.com/
- Create an oAuth consent screen
- The Callback url for dev is
http://localhost:3000/api/auth/callback/google
- Copy your Google clientID and secret to the
.env
- Sign up for Github oAuth in Settings / Developer Settings
- Enter relavent app details
- The Callback url for dev is
http://localhost:3000/api/auth/callback/github
- Generate a secret and copy and paste ID and secret to appropriate
.env
variable
To ensure a consistent development experience, configure the following:
- Node.js & npm: Make sure Node.js and npm are installed on your machine.
- Docker: Required for containerizing the PostgreSQL database.
- Environment Variables: Configure the
.env
file as described above.
This project uses Prisma as the ORM and PostgreSQL as the database. Here are the main steps:
- Define Services in
docker-compose.yml
for containerized environments, with PostgreSQL setup using the Bitnami PostgreSQL image and persistent storage. - Prisma Scripts: Scripts for Prisma (
prisma:generate
,prisma:migrate
, andprisma:deploy
) are added to thepackage.json
for easy schema management and migrations. - Database Schema: The schema includes tables like
users
,resident_requests
,addresses
, andtime_slots
, all with defined relationships and constraints.
To facilitate team collaboration, use these documents available in the /docs
directory:
- Team Project Ideas: Brainstorming and idea documentation.
- Team Decision Log: Log of team decisions for reference.
Meeting Agenda Templates | Link |
---|---|
Voyage Kickoff | Link |
App Vision & Feature Planning | Link |
Sprint Retrospective, Review, and Planning | Link |
Sprint Open Topic Session | Link |
Meet our awesome team! Everyone has added their GitHub and LinkedIn profiles for easy access.
- Suruchi Patki: GitHub / LinkedIn
- David Eastmond: GitHub / LinkedIn
- Mahyar Erfanian: GitHub / LinkedIn
- Franklin Macedo: GitHub / LinkedIn
- Nandor Nagy: GitHub / LinkedIn
- Eoin McDonnell: GitHub / LinkedIn
This project is built and maintained as part of the Chingu Community. We're constantly learning, adapting, and collaborating, so expect more updates and enhancements as we progress. We welcome feedback, contributions, and suggestions.
<<<<<<< HEAD
- Suruchi Patki: GitHub / LinkedIn
- David Eastmond: GitHub / LinkedIn
- Mahyar Erfanian: GitHub / LinkedIn
- Franklin Macedo: GitHub / LinkedIn
- Nandor Nagy: GitHub / LinkedIn
As the project evolves, additional features, components, and updates will be documented here. Stay tuned for more detailed posts as we continue building together!