Skip to content

Seluj78/PyMatcha

Repository files navigation

GitHub Travis (.com) GitHub code size in bytes Libraries.io dependency status for GitHub repo

PyMatcha

Summary

Why ?

Matcha is a 42 school project aiming to teach how to make a dating website. Lauris and Jules chose to make it as close as it could be to a real production product. You can find the subject here

Installation

First of all, contact Jules or Lauris to get the env files.

For more information, checkout the backend .env.template and the frontend .env.template

For production

You can simply download or git clone the project and, once inside of it, run docker-compose up --build.

The website will be accessible on port 4242.

If you do not want to build the containers yourself, you can use docker-compose-gh.yml instead:

docker-compose -f docker-compose-gh.yml up

For developpment

First of all, clone or download the repository, extract it if necessary then cd into it.

Backend:

You'll need python3.8+. cd in the backend and run:

python3.8 -m venv venv --prompt PyMatcha
source venv/bin/activate
pip install backend/requirements.txt
python run.py
Workers:

Same thing as for the backend, just then cd in the backend folder and run

celery -A PyMatcha.celery worker -E --loglevel=INFO -B --pool=threads
Frontend:

cd in the frontend folder and run yarn install then yarn run

The different services on the docker-compose:

  • Backend on port 8080
  • Frontend on port 4242
  • Swagger doc on 9000
  • PHPMyAdmin for debug on 8183
  • Workers on internal port
  • Redis on 6379
  • MySQL on internal port

What does it look like

Home page Sign Up Onboarding Recommended profiles Search page Search no results Search results Profile settings History Profile Matched profile Matches and chat

How long did it take

Lauris and Jules started working on it at the begining of september and finished on XXX. If you see commits before September, it's of an older version where Jules changed twice of frontend partner Here is a nice visual representation of the commits:

Gource Video

How many lines of code

As of Thu 12 Nov 11:40

     637 text files.
     624 unique files.                                          
     164 files ignored.

github.com/AlDanial/cloc v 1.88  T=1.68 s (333.3 files/s, 17377.3 lines/s)
-------------------------------------------------------------------------------
Language                     files          blank        comment           code
-------------------------------------------------------------------------------
JSON                           329              0              0           7924
Python                         119           1560           2126           5633
Vuejs Component                 53            146             91           4492
YAML                             7             32             22           2531
XML                             14              0              0           2042
JavaScript                      21             44             35           1156
CSS                              5             61              5            459
HTML                             4              0             22            253
SQL                              1             43             66            202
Markdown                         4             42              0            139
TOML                             1              3              5             21
Dockerfile                       1             12              0             18
SVG                              1              0              0              8
-------------------------------------------------------------------------------
SUM:                           560           1943           2372          24878
-------------------------------------------------------------------------------

Features implemented

  • Sign-up and sign-in
    • Forgot password email
    • Resend confirmation email
    • Registration process to add info on user
  • Browse recommended users
    • Filter them
    • Sort them
  • Search users
    • Filter them
    • Sort them
  • Like and superlike a user
  • Notifications for:
    • Like
    • Unlike
    • Match
    • Message
  • Chat with instant replies
  • Settings page where you can modify everything
  • History page

Bonuses implemented