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. |
||
---|---|---|
.github | ||
.vscode | ||
prisma | ||
public | ||
src | ||
.dockerignore | ||
.env.example | ||
.gitignore | ||
.prettierignore | ||
.prettierrc.json | ||
.yarnrc.yml | ||
components.json | ||
docker-compose.yml | ||
Dockerfile | ||
entrypoint.sh | ||
eslint.config.mjs | ||
LICENSE | ||
next.config.ts | ||
package.json | ||
postcss.config.mjs | ||
README.md | ||
tsconfig.json | ||
yarn.lock |
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:
-
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
- Using SSH:
-
Install dependencies:
yarn install
-
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. AdjustDATABASE_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"
-
-
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
- Ensure your Prisma schema (
-
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:
- Fork the repository.
- Create a new branch (
git checkout -b <action>/<issue#>-action_name
). - Make your changes.
- Commit your changes (
git commit -m '<action>: add some feature'
). - Push to the branch (
git push origin <action>/<issue#>-action_name
). - 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)