Coder Social home page Coder Social logo

tarektouati / newdle Goto Github PK

View Code? Open in Web Editor NEW

This project forked from indico/newdle

0.0 1.0 0.0 4.42 MB

Open Source Collaborative enterprise meeting scheduling tool.

License: MIT License

Python 27.61% JavaScript 61.19% HTML 0.74% Makefile 2.17% CSS 7.63% Mako 0.22% Dockerfile 0.39% Shell 0.06%

newdle's Introduction

โš ๏ธ WARNING: newdle is not yet fully finished and is still under heavy development ๐Ÿšง

While it should be already usable in production, do so at your own risk!

Most important missing features:

We would really appreciate your help, please have a look at the full list of GitHub issues we need a hand with!

Newdle Travis Build Status License Made at CERN!



Newdle is the new, shiny tool brought to you by the Indico Team @ CERN ๐ŸŽ‰ Here at CERN we hold a lot of meetings. While Indico makes it super easy to manage those meetings, we still lose a lot of time ๐Ÿ“ˆ trying to schedule them, which usually involves numerous emails and private messages. That is what newdle has been created for: to streamline the process of choosing the perfect date and time ๐Ÿ—“ for your next meeting/event.

Newdle is part of the MALT project.

A sneak peek of Newdle

Why another tool?

It is true that there are already several commercial and Open Source solutions available that facilitate creating "polls". One of them is Doodle which was one of our main inspirations when starting the development process. The biggest advantage of newdle over it is the fact that newdle is free of charge and Open Source - you just have to set it up on your server and you can start newdling! Apart from the commercial products on the market, there is a handful of Open Source projects e.g. Nuages or croodle which differ a lot in the features they offer. We have noticed that the majority of those tools don't provide users with proper User Experience which makes using them harder than it should be. This is one of the major advantages of newdle. We made sure that our tool is easy to use and intuitive with really good-looking design.

Integration

Since we are also the developers behind Indico we thought of integrating newdle with it. So, for example after a poll/newdle has finished it will be possible to create an event in Indico. Also newdle will make it a lot easier to choose possible slots for your meeting since we will integrate it with enterprise calendars to fetch participant availability. While making sure we still protect your data.

Development

We chose Python 3.7 as the backend language, so make sure you have it installed. To prepare the development environment it is enough to run make which takes care of installing all required dependencies inside a new virtualenv. Typically that will be the .venv directory unless you override the environment variable VENV e.g. VENV=.virtualenv make.

Make sure you have the python3.7 binary in your PATH. You can also use the PYTHON environment variable to override the location of the python binary. e.g.:

$ PYTHON=/usr/bin/python3.7 make

Database schema

Before running the alembic migrations make sure you have created a database called newdle (or adjust the config file). Having done that, run flask db upgrade to upgrade the schema.

โš ๏ธ Schema changes โš ๏ธ

At the initial stages of the development it might be pretty common to change the DB schema which also incurs modifications to the SQLAlchemy models. To facilitate the process of keeping actual schema and models in sync we provide make newdb command. The purpose of it is to update the initial alembic revision (according to the models declared) and recreate your local database. This is a destructive operation! This command will be removed as soon as there are more alembic revisions.

Running the development server

To run the dev servers, use make flask-server and make react-server (in separate terminals). You can use the FLASK_HOST, FLASK_PORT and REACT_PORT environment variables to override where the dev servers will listen (make sure to set it for both dev servers, since the React server needs to know where the Flask app is running).

Once everything is running, you can access the webapp on http://127.0.0.1:3000 if you did not change any of the ports.

Use the BROWSER environment variable if you want to prevent new browser windows being opened every time you run make react-server.

BROWSER=none make react-server

Other available make targets

We provide a couple of additional make targets that should streamline the development process:

  • make clean - removes all generated files
  • make distclean - runs clean target first and removes config files afterwards
  • make lint - runs pycodestyle and flake8, which report possible code style issues
  • make newdb - recreates the DB tables according to the SQLAlchemy models (run it every time you update the models)
  • make format - runs code formatters over the entire codebase (black, isort, prettier)
  • make test - runs Python and React tests
  • make build - builds a Python wheel which then could be used to install newdle in production
Made at CERN
Take part!

Note

In applying the MIT license, CERN does not waive the privileges and immunities granted to it by virtue of its status as an Intergovernmental Organization or submit itself to any jurisdiction.

newdle's People

Contributors

mic4ael avatar mvidalgarcia avatar nop33 avatar panagiotappl avatar pferreir avatar rpanczer avatar sanskagarwal avatar thiefmaster avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.