Built with the tools and technologies:
copo is a globally synced Pomodoro timer designed for seamless focus and collaboration. All users are synchronized to the same Pomodoro intervals (25 minutes of work followed by a 5-minute break). The application offers a minimal and distraction-free environment where everyone is on the same cycle. During the breaks, users can chat with each other in a global chat room, making it a community-driven productivity tool.
The simplicity of the timer ensures that users stay focused without needing to manage their time themselves. Built using modern technologies, Copo provides real-time updates and ensures that users are always in sync no matter when they join the session.
-
Global Sync Pomodoro Timer: All users operate on the same 25-minute work and 5-minute break intervals. The timer is globally synchronized, meaning no matter when you join, you’ll be on the same cycle as everyone else.
-
Break-Time Global Chat: During the 5-minute breaks, users can chat with others from around the world, fostering a sense of community and collaboration.
-
Minimalist Interface: A clean and intuitive design that keeps the focus on productivity. The user interface has been designed to eliminate distractions and make the timer easy to follow.
-
Real-time Timer Updates: The server broadcasts the timer state to all connected clients in real-time, ensuring that the timer remains consistent across all sessions.
-
User-Friendly Notifications: Receive visual and auditory cues when the work session ends and the break begins.
-
Cross-Platform Compatibility: Accessible via any browser, making it easy to use on different devices without the need for additional installations.
-
Metrics Tracking: Integrated with Umami for tracking important user interactions (like video clicks or chat messages), providing insights into how users engage with the application.
└── copo/
├── client
│ ├── .eslintrc.json
│ ├── .gitignore
│ ├── README.md
│ ├── app
│ ├── next.config.mjs
│ ├── package.json
│ ├── pnpm-lock.yaml
│ ├── postcss.config.mjs
│ ├── socket.js
│ ├── tailwind.config.ts
│ ├── tsconfig.json
│ └── utils
├── server
│ ├── .gitignore
│ ├── package-lock.json
│ ├── package.json
│ ├── router.js
│ └── server.js
└── test.js
.
File | Summary |
---|---|
test.js | ❯ REPLACE-ME |
client
File | Summary |
---|---|
next.config.mjs | ❯ REPLACE-ME |
pnpm-lock.yaml | ❯ REPLACE-ME |
.eslintrc.json | ❯ REPLACE-ME |
tsconfig.json | ❯ REPLACE-ME |
postcss.config.mjs | ❯ REPLACE-ME |
package.json | ❯ REPLACE-ME |
socket.js | ❯ REPLACE-ME |
tailwind.config.ts | ❯ REPLACE-ME |
client.utils
File | Summary |
---|---|
types.ts | ❯ REPLACE-ME |
constants.ts | ❯ REPLACE-ME |
client.app
File | Summary |
---|---|
layout.tsx | ❯ REPLACE-ME |
globals.css | ❯ REPLACE-ME |
page.tsx | ❯ REPLACE-ME |
server
File | Summary |
---|---|
package-lock.json | ❯ REPLACE-ME |
router.js | ❯ REPLACE-ME |
package.json | ❯ REPLACE-ME |
server.js | ❯ REPLACE-ME |
-
Task 1
:Implement feature one. -
Task 2
: Implement feature two. -
Task 3
: Implement feature three.
Contributions are welcome! Here are several ways you can contribute:
- Report Issues: Submit bugs found or log feature requests for the
copo
project. - Submit Pull Requests: Review open PRs, and submit your own PRs.
- Join the Discussions: Share your insights, provide feedback, or ask questions.
Contributing Guidelines
- Fork the Repository: Start by forking the project repository to your github account.
- Clone Locally: Clone the forked repository to your local machine using a git client.
git clone https://github.com/skyash-dev/copo
- Create a New Branch: Always work on a new branch, giving it a descriptive name.
git checkout -b new-feature-x
- Make Your Changes: Develop and test your changes locally.
- Commit Your Changes: Commit with a clear message describing your updates.
git commit -m 'Implemented new feature x.'
- Push to github: Push the changes to your forked repository.
git push origin new-feature-x
- Submit a Pull Request: Create a PR against the original project repository. Clearly describe the changes and their motivations.
- Review: Once your PR is reviewed and approved, it will be merged into the main branch. Congratulations on your contribution!