Skip to content

Latest commit

 

History

History
140 lines (109 loc) · 4.64 KB

README.md

File metadata and controls

140 lines (109 loc) · 4.64 KB
Table of Contents
  1. About The Project
  2. Getting Started
  3. Contributing
  4. License

About The Project

I've seen a lot of twitter/facebook/etc. clones on various learning websites. Most of which seem pretty "complete" from a beginner standpoint, where they establish some kind of route-structure and slap on a rudimentary front-end to it, but are missing many implementation details. In the middle of thinking about the aforementioned missing implementation details, I pondered how many details were missing and how difficult it would be to create a properly-accurate front-end (not just div-boxes with minimal styling/colors) and back-end (maybe something cool that's Dockerized/uses appropriate data-storage methods), and thus this project was born.

The project serves to:

  • Provide practice for me/others who wish to contribute.
  • Provide insight as to difficulties when transitioning technologies (EG: using templates at first, and then switching to React).
  • Provide a relatively small/midsized code base for other people to look at/modify/question/contribute.
  • Provide an easy way for people who are scared of breaking things to start contributing (to something that noone depends upon).

Every major version ("build") will be released so people can look at past revisions of/decisions about the code base. Ofcourse, this is a relatively small/private project, so I don't expect it to garner that much attention, but it should be pretty fun.

Built With

Past builds

  • None yet.

Getting Started

  1. Clone the repo.
git clone https://github.com/Nickatak/twitter-clone
  1. Install the dependencies.
pip install -r requirements.txt
  1. Run the server.
flask run

Prerequisites

You need the following programs/utilities/etc.:

  • Python3 (>= 3.8.0)

Testing

  1. Clone the repo (if you haven't already).
git clone https://github.com/Nickatak/twitter-clone
  1. Install the dependencies (if you haven't already).
pip install -r requirements.txt
  1. Run pytest (with coverage).
coverage run -m pytest

OPTIONAL: If you don't want to see the test-coverage, then you can just run (and stop here):

pytest

OPTIONAL: If you got errors and want to see which test are failing, try using the -v or -vv flags:

pytest -vv
  1. Generate coverage-report.
coverage html
  1. Open up /htmlcov/index.html in your browser to see the coverage report.

Contributing

Join in the fun and contribute. This is a non-serious project, so don't be afraid to break something (although I'll try my best not to let that happen by reviewing your changes before merging, of course).

  1. Fork the Project.
  2. Create your Feature Branch (git checkout -b feature/AmazingFeature).
  3. Commit your Changes (git commit -m 'Add some AmazingFeature').
  4. Push to the Branch (git push origin feature/AmazingFeature).
  5. Write new tests for your new feature.
  6. Run tests (See: testing) and make sure they all pass.
  7. Run flake8/pycodestyle to make sure your code is PEP8 compliant/linted (flake8/pycodestyle).
  8. Open a Pull Request.

Project slack link: Slack

License

Distributed under the Apache License, version 2.0. See LICENSE.txt for more information.