A web app to improve writing skills in any language.
The inspiration for this came from the lack of these kind of resources. You can find a ton of resources to master reading, listening or speaking a language. But when it comes to writing, there simply aren't much.
The app will function in these steps:
- A user A will sign up with 2 languages, one in which they are proficient(say, English) and the other which they want to learn(say, Japanese).
- Then they will write anything they need in, say, Japanese.
- A user B, who is proficient in Japanese, will then verify and propose corrections.
- Similarly if someone wants to learn English, user A can verify their messages.
- Everyone is happy.
Initially the app will be based on twitter, that is, users will be editing tweets. Eventually, you will able to use this app without using Twitter at all!
If you'd like to get an email when this website/app is ready, please sign up to our waitlist here: https://www.csdojo.io/wait
We would need following installed in our system before we start with setting up the project in local machine.
- Git - This is needed as a version control system. If you don't have this preinstalled in local machine, visit https://git-scm.com/downloads and setup git on local.
- Python 3 - We are using Python as a programming language in this project. Mac and Ubuntu have it pre-installed. NOTE: you might have Python 2 on your Mac or Ubuntu. If so, make sure to download Python 3.
- Clone this repository into local system and change the directory.
git clone https://github.com/ykdojo/editdojoprivate.git
cd editdojoprivate/
- Install pip3 and pipenv.
pip3 install pipenv
- Go into the virtual environment:
pipenv install
pipenv shell
- Apply migrations
python manage.py makemigrations
python manage.py migrate
python manage.py loaddata languages.yaml
# NOTE: you can produce the same data in languages.yaml with
# python manage.py dumpdata users.Language --format=yaml > languages.yaml
- Set up Twitter
For this, first, set up your environment variables.
You can take a look at .bash_profile_sample on how to set them up.
Then, run:
python manage.py shell < setup_twitter.py
On Heroku:
heroku run python manage.py shell
exec(open("./setup_twitter.py").read())
- Run the server:
python manage.py runserver <PORT>
OR
python manage.py runserver
-
Start the application opening the link shown in your terminal on a browser.
-
To run tests, run the following (in your pipenv environment):
python manage.py test
If it doesn't work right away, you might want to check out this StackOverflow thread.
- (Optional) If you do any sort of React development, run the following command:
npm install
npm run watch
More about it here: https://bit.ly/2AIT7MK
- Install Dependencies. Run
pipenv update
if pipfile.lock is out of date. - Make sure your Heroku is set to Hobby Dynos. You can do this in the web console.
- Add the redis addon in heroku
heroku addons:create redistogo
- start up an rqworker
python manage.py rqworker in_twitter_queue
(in this case, our queue is named in_twitter_queue) - start up worker monitoring
python manage.py rqstats
- run
heroku run python job_scheduler.py --help
to schedule / add jobs to the queue. The command line argument is currently WIP.
This is a part of the series of YouTube videos demonstrating how to build a real startup using Python and Javascript. Useful resources for this project:
- YouTube video link: https://www.youtube.com/watch?v=UyQn0BhVqNU
- Slack group and more info: https://www.csdojo.io/edit
- Waiting list for this app: https://www.csdojo.io/wait
- Recommended Django book for beginners: http://csdojo.io/dj (It's a referral link. When you buy a copy from this link, YK gets paid a little bit - which will help him continue working on this project full-time.)
- Sample chapters of this book: https://djangoforbeginners.com/
The project was started by: YK Sugi. He's the guy who's running CS Dojo, a programming education YouTube channel.
If you have any questions related to this project, please contact him on our Slack group.