Thanks to visit codestin.com
Credit goes to github.com

Skip to content

InMyTime: A collaborative scheduling and polling application built with Next.js (App Router) and MongoDB, featuring real-time availability aggregation.

License

Notifications You must be signed in to change notification settings

Camalzadeh/in_my_time

Repository files navigation

InMyTime Logo

InMyTime Logo

Find the perfect time for everyone

AboutDocumentationFeaturesTech StackUsageAPI RoutesProject StructureContributingLicense


About

InMyTime is a collaborative scheduling and polling application built with Next.js (App Router) and MongoDB.
Users can create polls, propose multiple time slots, share links, and collect votes.
The system aggregates availability to highlight the best meeting times for everyone.
Realtime updates are powered by Ably.


Documentation

The project's detailed presentation, roadmap, and core concepts are available in the dedicated documentation file.

  • Project Presentation: View the full presentation in PDF format here.

Features

  • Create polls with multiple time slots
  • Anonymous voting (no login required)
  • Aggregated availability calculation
  • Shareable poll links
  • Live results visualization with realtime updates (Ably)
  • Modern UI with Tailwind + Framer Motion
  • CI/CD integration with GitHub Actions

Tech Stack

Layer Technology
Framework Next.js Next.js (App Router)
Language TypeScript TypeScript
Database MongoDB MongoDB + Mongoose
Frontend React React
Styling TailwindCSS Tailwind CSS
Animations Framer Motion Framer Motion
Realtime Ably Ably
Testing Jest + @testing-library
Linting ESLint ESLint

Usage

  1. Create a poll with a title and time slots
  2. Share the unique poll link with participants
  3. Collect votes anonymously
  4. Finalize the poll to confirm the chosen time

API Routes

  • POST /api/polls — Create a new poll
  • GET /api/polls/:id — Get poll details by ID
  • POST /api/polls/:id/vote — Add a vote to a specific slot
  • POST /api/polls/:id/finalize — Finalize a poll

Project Structure

in_my_time/ 
├── app/                # Next.js App Router pages & API routes 
│ ├── api/              # Backend API endpoints (polls, votes, etc.) 
│ └── components/       # Reusable UI components 
├── lib/                # Utility functions (date ranges, slot generation, etc.) 
├── tests/              # Unit & integration tests 
│ ├── unit/             # Utility and component tests 
│ └── integration/      # API and model tests 
├── public/             # Static assets (images, icons) 
├── package.json        # Dependencies and scripts 
└── README.md           # Project documentation

Contributing

Contributions are welcome! Feel free to:

  1. Fork the repository
  2. Create a feature branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -m 'Add amazing feature')
  4. Push to the branch (git push origin feature/amazing-feature)
  5. Open a Pull Request

License

This project is licensed under the MIT License — see the LICENSE file for details.


Made with ❤️ for better scheduling

About

InMyTime: A collaborative scheduling and polling application built with Next.js (App Router) and MongoDB, featuring real-time availability aggregation.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors 5