Skip to content

Commit 917083e

Browse files
committedFeb 27, 2024·
update README.md
1 parent 685fc0b commit 917083e

File tree

1 file changed

+52
-13
lines changed

1 file changed

+52
-13
lines changed
 

‎README.md

+52-13
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99

1010
<br />
1111
<div align="center">
12-
<h3 align="center">Fjob backend</h3>
12+
<h3 align="center">FJob backend</h3>
1313

1414
<p align="center">
1515
FJob is a fullstack application (main technologies: Django Rest Framework, Nextjs, Selenium). FJob, by collecting job offers from many job portals (currently only JustJoinIT, but there are already scripts ready to collect data from: olx, Pracujpl, nofluffjobs, Pracujpl) and enabling companies to post their own job offers will allow you to easily search for job offers.
@@ -21,6 +21,17 @@
2121
</p>
2222
</div>
2323

24+
## !Info!
25+
<strong>
26+
The project has undergone significant changes in terms of code architecture.
27+
Initially, all application logic resided in views.
28+
Currently, thanks to the use of Repository Pattern and Service Layer,
29+
views have been significantly improved.
30+
Not all views use this architecture,
31+
I left some of them unchanged because they use abstract classes from DRF,
32+
so there is practically no business logic in them.
33+
</strong>
34+
2435
## System Architecture
2536

2637
Fjob consists of 3 repositories:
@@ -81,32 +92,29 @@ Some views have remained unchanged due to, for example, their simplicity related
8192
- Implements AWS EventBridge to automatically trigger each web scraping function.
8293
17. Sentry Integration for Error Monitoring:
8394
- Integrates with the Sentry platform to monitor and analyze errors in the system.
84-
95+
18. I wrote over <strong>120 tests</strong>, both unit and integration
8596

8697
## Technologies:
8798
- Python
88-
89-
- Python
90-
- Django
91-
- Django Rest Framework
99+
- Django / Django Rest Framework
100+
- Selenium
92101
- Celery
93102
- Pytest
94-
- Selenium
95103
- Requests
96104
- Beautiful Soup 4
97105
- React
98-
- Nextjs
99-
- Typescript
106+
- Next.JS
107+
- Typescript
100108
- AWS
101109
- EC2
102110
- S3 Bucket
103111
- Elastic IP
104112
- Route 53
105-
- AWS Lambda
113+
- Lambda
106114
- EventBridge
107115
- CodeBuild
108116
- Amplify
109-
- Google Cloud SQL (postgre)
117+
- Google Cloud SQL (postgreSQL)
110118
- Docker
111119
- Docker Compose
112120
- Redis
@@ -116,12 +124,14 @@ Some views have remained unchanged due to, for example, their simplicity related
116124
- SQLite
117125
- Stripe
118126

119-
127+
## Backend - Endpoints
120128
<img src="assets/api_1.png" alt="endpoints_1"/>
121129
<img src="assets/api_2.png" alt="endpoints_2"/>
122130
<img src="assets/api_3.png" alt="endpoints_3"/>
123131

124132

133+
## Frontend
134+
I'm not a frontend developer, but I think it looks pretty good
125135

126136
<img src="assets/frontend_1.png" alt="frontend_1"/>
127137
<img src="assets/frontend_2.png" alt="frontend_2"/>
@@ -150,7 +160,7 @@ Some views have remained unchanged due to, for example, their simplicity related
150160

151161
Backend in local mode use SQLite so there is no need to use Docker/Docker-compose
152162

153-
#### Installation
163+
#### Installation - without docker
154164

155165
```bash
156166
# Clone repository
@@ -172,6 +182,35 @@ python manage.py createsuperuser (in User Type type "USER")
172182
python manage.py runserver
173183
```
174184

185+
#### Installation - with docker
186+
187+
```bash
188+
# Clone repository
189+
git clone <url>
190+
191+
# Create .env file
192+
cp .env_example .env
193+
194+
# Build image
195+
docker-compose build
196+
197+
# Run containers
198+
docker-compose up # -d
199+
200+
# Apply migrations
201+
python manage.py migrate
202+
203+
#
204+
# Run this commands inside web container
205+
#
206+
207+
# Create super user
208+
python manage.py createsuperuser (in User Type type "USER")
209+
210+
# Run server
211+
python manage.py runserver
212+
```
213+
175214
#### Commands
176215

177216
Run pytest

0 commit comments

Comments
 (0)
Please sign in to comment.