You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardexpand all lines: README.md
+52-13
Original file line number
Diff line number
Diff line change
@@ -9,7 +9,7 @@
9
9
10
10
<br />
11
11
<divalign="center">
12
-
<h3align="center">Fjob backend</h3>
12
+
<h3align="center">FJob backend</h3>
13
13
14
14
<palign="center">
15
15
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 @@
21
21
</p>
22
22
</div>
23
23
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
+
24
35
## System Architecture
25
36
26
37
Fjob consists of 3 repositories:
@@ -81,32 +92,29 @@ Some views have remained unchanged due to, for example, their simplicity related
81
92
- Implements AWS EventBridge to automatically trigger each web scraping function.
82
93
17. Sentry Integration for Error Monitoring:
83
94
- 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
85
96
86
97
## Technologies:
87
98
- Python
88
-
89
-
- Python
90
-
- Django
91
-
- Django Rest Framework
99
+
- Django / Django Rest Framework
100
+
- Selenium
92
101
- Celery
93
102
- Pytest
94
-
- Selenium
95
103
- Requests
96
104
- Beautiful Soup 4
97
105
- React
98
-
-Nextjs
99
-
- Typescript
106
+
-Next.JS
107
+
- Typescript
100
108
- AWS
101
109
- EC2
102
110
- S3 Bucket
103
111
- Elastic IP
104
112
- Route 53
105
-
-AWS Lambda
113
+
- Lambda
106
114
- EventBridge
107
115
- CodeBuild
108
116
- Amplify
109
-
- Google Cloud SQL (postgre)
117
+
- Google Cloud SQL (postgreSQL)
110
118
- Docker
111
119
- Docker Compose
112
120
- Redis
@@ -116,12 +124,14 @@ Some views have remained unchanged due to, for example, their simplicity related
116
124
- SQLite
117
125
- Stripe
118
126
119
-
127
+
## Backend - Endpoints
120
128
<imgsrc="assets/api_1.png"alt="endpoints_1"/>
121
129
<imgsrc="assets/api_2.png"alt="endpoints_2"/>
122
130
<imgsrc="assets/api_3.png"alt="endpoints_3"/>
123
131
124
132
133
+
## Frontend
134
+
I'm not a frontend developer, but I think it looks pretty good
125
135
126
136
<imgsrc="assets/frontend_1.png"alt="frontend_1"/>
127
137
<imgsrc="assets/frontend_2.png"alt="frontend_2"/>
@@ -150,7 +160,7 @@ Some views have remained unchanged due to, for example, their simplicity related
150
160
151
161
Backend in local mode use SQLite so there is no need to use Docker/Docker-compose
152
162
153
-
#### Installation
163
+
#### Installation - without docker
154
164
155
165
```bash
156
166
# Clone repository
@@ -172,6 +182,35 @@ python manage.py createsuperuser (in User Type type "USER")
172
182
python manage.py runserver
173
183
```
174
184
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")
0 commit comments