Skip to content

gvmossato/opus

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation


opus-logo

python-badge django-badge license-badge


πŸ“š About | 🌎 Site | πŸš€ Getting Started | πŸ§™ Collaborators

Opus began as a college project for an Information Systems course and evolved into a collaborative productivity tool. It allows users to organize their to-do lists with the help of friends, coworkers, and even new acquaintances on the platform!

⭐ Liked? Give us a star! ⭐

πŸ“š About

about

Our main goal with Opus is to make staying organized enjoyable rather than a chore. We believe in splitting tasks, joining forces, and eliminating rework to achieve this.

Split the Tasks

When creating your to-do lists, have you ever considered that others might have the same tasks to accomplish? Whether you're in school, college, or already working, this is often the case.

This is where Opus shines: you can create a to-do list and invite your colleagues to collaborate. You can assign roles, determining who can invite new members and create tasks, and who can simply view the tasks that need to be done.

Join the Forces

With everyone knowing their responsibilities, you no longer need to stress about remembering all the projects and assignments you have. A friend can handle one subject while you cover another, resulting in half the effort for all the tasks.

Taking a trip or some days off? No problem! Promote others from your list to help keep things organized, ensuring you don't return to a backlog of tasks.

Eliminate the Rework

Invited to a list but missing some tasks important to you? Or perhaps you don't need to see every task on the list? Don't waste time recreating what matters on your list.

Opus allows you to copy tasks by tags you're interested in to a list you have permissions for, and it doesn't stop there:

  • The tasks become yours, so you can edit the details as you wish!
  • New tasks with the chosen tags will automatically sync from the original list to yours upon creation!

🌎 Site

To get started with Opus, simply create an account:

signup

And log in:

signin

After that, you are free to edit your profile as you like:

edit-profile

From there, just create a list:

create-list

And start managing your tasks:

list-administrator

Oh, and don't forget! Collaboration is the essence of Opus, so invite and manage users as you see fit:

social

We'll notify you of all the list invitations you receive:

invites

And you only need to indicate what interests you from there:

follow-list-tags

To bring them into your lists:

follow-list-target

πŸš€ Getting Started

Although it may not be evident from this repository, Opus was never officially launched. However, it was deployed in production via Heroku, utilizing the now-defunct free tier. Despite being just a college project, we achieved all the essential functionalities of the application, including user creation with email authentication tokens, list management with different user permissions, and automatic task sharing between followed lists.

If you're interested in running the application locally, you need to install Python Development Master (PDM). It's also recommended to use Pyenv (optional).

Once you have the required packages installed, clone this repository and install the dependencies (Python 3.12 is expected):

pdm install

Next, create a .env file in the same directory as the template with the environment variables and run the database migrations:

pdm run migrations

Finally, handle the static files using:

pdm run collect_static

All set! Start the server by running:

pdm run start

While developing, if any models modifications are made, you will need to execute pdm run make_migrations and then apply the migrations script.

Note

After this first initial setup you can always start the server by executing the start script.

πŸ§™ Collaborators

This project was originally made possible through the direct work of:

With a special thanks for the support given by: