a social calendar application
Find a file
SomeCodecat a1a482abcc feat(fonts): Add Varela Round and Comfortaa fonts and their OFL licenses
The changes add the SIL Open Font License (OFL) text files for the Varela Round and Comfortaa font families. This ensures the proper licensing information is included with the font files, allowing users to understand the terms under which they can use and distribute these fonts.
2025-06-05 17:22:45 +02:00
.github chore(deps): update docker/build-push-action digest to 2634353 2025-05-29 19:57:32 +00:00
.vscode feat: added figma css variables to globals.css 2025-05-21 07:43:30 +00:00
prisma chore: prima init migration 2025-05-19 20:16:31 +00:00
public feat(fonts): Add Varela Round and Comfortaa fonts and their OFL licenses 2025-06-05 17:22:45 +02:00
src feat(ui): Improve login card design and theme customization 2025-06-05 17:22:45 +02:00
.dockerignore chore: prepare docker container for prisma database 2025-05-19 15:14:01 +00:00
.env.example feat: set up prisma db 2025-05-19 20:16:31 +00:00
.gitignore chore: prima init migration 2025-05-19 20:16:31 +00:00
.prettierignore chore: setup prettier 2025-04-18 14:25:46 +02:00
.prettierrc.json chore: setup prettier 2025-04-18 14:25:46 +02:00
.yarnrc.yml chore: update yarn version 2025-05-12 09:12:37 +02:00
components.json feat: implements next-themes 2025-05-09 17:37:11 +02:00
docker-compose.yml fix: add missing env variable to docker-compose 2025-05-09 21:51:15 +00:00
Dockerfile chore(deps): update node.js to 41e4389 2025-05-31 07:00:22 +00:00
entrypoint.sh chore: prepare docker container for prisma database 2025-05-19 15:14:01 +00:00
eslint.config.mjs fix: update eslint config to include additional ignore patterns 2025-05-19 20:16:31 +00:00
LICENSE chore: init 2025-04-15 18:51:30 +02:00
next.config.ts feat: add image optimization settings and clean up hover card component 2025-05-12 07:02:53 +00:00
package.json chore(deps): update dependency @types/react-dom to v19.1.6 2025-06-04 13:01:07 +00:00
postcss.config.mjs feat: setup Tailwind CSS 2025-05-09 16:35:06 +02:00
README.md docs: fix formatting in Prisma setup instructions 2025-05-21 14:29:52 +02:00
tsconfig.json feat: initialize next.js application 2025-04-15 19:15:57 +02:00
yarn.lock chore(deps): update dependency @types/react-dom to v19.1.6 2025-06-04 13:01:07 +00:00

MeetUP

Description

MeetUP is a social calendar application designed to make coordinating schedules with friends seamless and intuitive. It was created because it can be a hassle coordinating meetings between multiple friends and across different friend groups. MeetUP aims to simplify the process of finding mutual availability without endless back-and-forth messaging.

Project Status

Still in Development: This project is actively under development. Core features are being built, and the application is not yet feature-complete or ready for production use.

Features

Implemented Features

  • Core infrastructure setup in progress. No user-facing features are implemented yet.

Planned Features (Roadmap)

  • Friendships: Connect with friends to share calendars.
  • Group Calendars: Create and manage shared calendars for groups.
  • iCal Import: Import existing calendars from iCalendar (.ics) files.
  • iCal Export: Export personal or shared calendars in iCalendar (.ics) format.
  • Email Notifications: Receive email alerts for event bookings, reminders, and updates.
  • View Blocked Slots: See when friends are busy without revealing event details.
  • Book Timeslots: Request and confirm meeting times in friends' available slots.
  • SSO Compatibility: Planning for Single Sign-On integration.

Technologies Used

This project is built with a modern tech stack:

  • Package Manager: Yarn
  • Framework: Next.js - React framework for server-side rendering and static site generation.
  • Language: TypeScript - Superset of JavaScript that adds static typing.
  • ORM: Prisma - Next-generation ORM for Node.js and TypeScript.
  • Authentication: Auth.js (formerly NextAuth.js) - Authentication for Next.js.
  • Styling: Tailwind CSS - A utility-first CSS framework.
  • UI Components: shadcn/ui - Re-usable components built using Radix UI and Tailwind CSS.
  • Containerization: Docker (for planned self-hosting option)
  • (You can also list related tools here, e.g., ESLint, Prettier, testing libraries if you plan to use them)

Getting Started

Prerequisites:

  • Node.js: Version is continually upgraded. It's recommended to use the latest LTS or a recent stable version. (Check .nvmrc if available).
  • Yarn: Version is continually upgraded. (Check package.json engines field if specified).
  • A database supported by Prisma (e.g., PostgreSQL, MySQL, SQLite). Ensure your database server is running.

Installation & Running Locally:

  1. Clone the repository:

    • Using SSH:
      git clone ssh://git@git.dominikstahl.dev/DHBW-WE/MeetUp.git
      
    • Or using HTTPS (recommended for most users):
      git clone [https://git.dominikstahl.dev/DHBW-WE/MeetUp.git](https://git.dominikstahl.dev/DHBW-WE/MeetUp.git)
      
    cd MeetUp
    
  2. Install dependencies:

    yarn install
    
  3. Set up environment variables:

    • You will need to create an AUTH_SECRET. You can generate one using the following command:

      npx auth secret
      
    • Copy the .env.example file (if it exists) to .env.local. If not, create .env.local.

      # If .env.example exists:
      cp .env.example .env.local
      # Otherwise, create .env.local and add the following:
      
    • Ensure the following environment variables are set in your .env.local file. Adjust DATABASE_URL for your specific database provider and credentials.

      # Database Connection String (Prisma)
      # Example for PostgreSQL: DATABASE_URL="postgresql://USER:PASSWORD@HOST:PORT/DATABASE?schema=public"
      DATABASE_URL="your_database_connection_string"
      
      # Generated with npx auth secret
      AUTH_SECRET="your_generated_auth_secret"
      
      # Authentik SSO Variables (if you are using this provider)
      AUTH_AUTHENTIK_ID=
      AUTH_AUTHENTIK_SECRET=
      AUTH_AUTHENTIK_ISSUER=
      
      # Base URL of your application
      NEXT_PUBLIC_APP_URL="http://localhost:3000"
      
  4. Apply database migrations (Prisma):

    • Ensure your Prisma schema (prisma/schema.prisma) is defined.
    • Setup/update the database with these commands:
      yarn prisma:generate
      
      yarn prisa:db:push
      
    • Run the following command to apply migrations and generate Prisma Client:
      npx prisma migrate dev
      # You might be prompted to name your first migration.
      

    Tipp: You can open the prisma database UI with yarn prisma:studio

  5. Run the development server:

    yarn dev
    

    Open http://localhost:3000 in your browser to see the application.

    The test user for the application is:

    email: test@example.com
    password: password
    

Self-Hosting with Docker (Planned):

  • A Docker image and docker-compose.yml file will be provided in the future to allow for easy self-hosting of the MeetUP application. This setup will also include database services. Instructions will be updated here once available.

Contributing

Contributions are welcome! If you'd like to contribute, please:

  1. Fork the repository.
  2. Create a new branch (git checkout -b <action>/<issue#>-action_name).
  3. Make your changes.
  4. Commit your changes (git commit -m '<action>: add some feature').
  5. Push to the branch (git push origin <action>/<issue#>-action_name).
  6. Open a Pull Request against the main branch.

Possible actions are:

*feat* -> Feature added
*fix* -> Fixed a bug
*test* -> Modified or added tests
*docs* -> Modified documentation
*chore* -> changes to non code files (workflows, lock files, ...)
*refactor* -> rewritten code without changing functionality
*style* -> code style (yarn format)
*revert* -> reverts a previous commit

Please ensure your code adheres to the project's coding standards (e.g., run linters/formatters if configured) and that any database schema changes are accompanied by a Prisma migration.


(Optional Sections You Might Want to Add Later):

  • Screenshots/Demo: (Once you have UI to show)
  • API Reference: (If you plan to expose an API)
  • Detailed Deployment Guides: (For various platforms beyond Docker)
  • License: (e.g., MIT, GPL - Important for open source projects)
  • Contact: (How to get in touch with the maintainers)
  • Acknowledgements: (Credit to any libraries, inspirations, or contributors)