- Added new Radix UI components: Dialog, Tooltip, Separator, and updated existing components. - Introduced a Sidebar component with collapsible functionality and mobile responsiveness. - Implemented a custom hook `useIsMobile` to manage mobile state. - Updated package dependencies in package.json and yarn.lock for new components. - Created utility components such as Button, Skeleton, and Input for consistent styling. feat: add AppSidebar component with collapsible functionality and sidebar menu - Introduced AppSidebar component for a customizable sidebar layout. - Implemented collapsible sections using Radix UI's Collapsible component. - Added sidebar menu items with icons and links for navigation. - Created Sidebar UI components including SidebarHeader, SidebarFooter, and SidebarMenu. - Integrated ThemePicker for theme selection within the sidebar. - Updated sidebar styles and layout for better responsiveness. chore: add @radix-ui/react-collapsible dependency - Added @radix-ui/react-collapsible package to manage collapsible UI elements. |
||
---|---|---|
.github | ||
.vscode | ||
cypress | ||
prisma | ||
public | ||
src | ||
.dockerignore | ||
.env.example | ||
.env.test | ||
.gitignore | ||
.prettierignore | ||
.prettierrc.json | ||
.yarnrc.yml | ||
components.json | ||
cypress.config.ts | ||
docker-compose.dev.yml | ||
docker-compose.yml | ||
Dockerfile | ||
Dockerfile.dev | ||
entrypoint.dev.sh | ||
entrypoint.sh | ||
eslint.config.mjs | ||
exportSwagger.ts | ||
LICENSE | ||
next.config.ts | ||
orval.config.js | ||
package.json | ||
postcss.config.mjs | ||
README.md | ||
tsconfig.json | ||
yarn.lock |
MeetUP
Table of contents
- Description
- Project Status
- Features
- Technologies Used
- Development environment setup
- Production Deployment using Docker
- Contributing
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
- Event creation, deletion, and editing
- SSO and credentials login and signup
- Participant invitation and status
- Calendar of your own events
- Calendar of other users' availability (only in event creation form)
Planned Features (Roadmap)
- Friendships
- Group calendars
- iCal import and export
- Notifications (in-app and external/mail)
Technologies Used
This project is built with a modern tech stack:
- Package Manager: Yarn
- Framework: Next.js
- Language: TypeScript
- ORM: Prisma
- Authentication: Auth.js
- Styling: Tailwind CSS
- UI Components: shadcn/ui
- Containerization: Docker
- API Docs: Swagger
- React hook API client: orval
Development environment setup
Without Docker
Prerequisites:
- Node.js: version 22+
- corepack: enable using
corepack enable
Installation & Running:
-
Clone the repository:
- Using HTTPS:
git clone https://git.dominikstahl.dev/DHBW-WE/MeetUp.git
- Or using SSH:
git clone ssh://git@git.dominikstahl.dev/DHBW-WE/MeetUp.git
cd MeetUp
- Using HTTPS:
-
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
Add any additional needed environment variables into the generated
.env.local
file. Example variables can be found in the.env.example
file. The following variables are required:# Generated with npx auth secret AUTH_SECRET="your_generated_auth_secret" DATABASE_URL="file:./dev.db"
-
Apply database migrations (Prisma): Set up/update the database with these commands:
yarn prisma:generate
yarn prisma:db:push
Tip: You can open the Prisma database UI with
yarn prisma:studio
-
Generate needed TypeScript files: Generate the
swagger.json
file and the API client using:yarn swagger:generate yarn orval:generate
-
Run the development server:
yarn dev
Open http://localhost:3000 in your browser to see the application.
With Docker
Prerequisites:
- Docker
- Docker Compose
Running:
yarn dev_container
Production Deployment using Docker
The application can be hosted using the Docker container.
There is an example Docker Compose file provided here.
Contributing
Contributions are welcome! If you'd like to contribute, please follow these steps:
-
Fork the repository.
-
Create a new branch:
git checkout -b <type>/<issueNum>-<short_description>
- Example:
feat/42-add_login_form
- Example:
-
Make your changes.
-
Commit your changes using Conventional Commits:
-
The commit message should be structured as follows:
<type>(optional scope): <short description>
- Example:
feat(auth): add login form
- Example:
fix(events): correct event time calculation
- Example:
docs: update README with setup instructions
- Example:
-
Used types:
feat
: Feature addedfix
: Bug fixtest
: Add or modify testsdocs
: Documentation changeschore
: Changes to non-code files (workflows, lock files, etc.)refactor
: Code refactoring without changing functionalitystyle
: Code style changes (formatting, etc.)revert
: Revert a previous commit
-
-
Push to your branch:
git push origin <type>/<issue#>-<short_description>
-
Open a Pull Request against the
main
branch.
Please ensure your code adheres to the project's coding standards (run yarn format
) and that any database schema changes are accompanied by a Prisma migration.