Skip to content

Commit 864354d

Browse files
Update README.md
1 parent d9f1092 commit 864354d

File tree

1 file changed

+48
-3
lines changed

1 file changed

+48
-3
lines changed

README.md

Lines changed: 48 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,61 @@
11
# Ninety Camera - Smart Monitoring Platform for Security Cameras
22

3-
Ninety Camera is a smart monitoring platform for security cameras which can detect human intrusions from camera footage and notify users about the intruder. The whole system is come up with a desktop application, mobile applicatin and a web application. This is the web server of the system which contain the backend of the web application and backend of the mobile application.
4-
53
![GitHub language count](https://img.shields.io/github/languages/count/Ninety-Camera/web-backend)
64
![GitHub top language](https://img.shields.io/github/languages/top/Ninety-Camera/web-backend)
75
![GitHub repo size](https://img.shields.io/github/repo-size/Ninety-Camera/web-backend)
86

7+
Ninety Camera is a smart monitoring platform for security cameras which can detect human intrusions from camera footage and notify users about the intruder. The whole system is come up with a desktop application, mobile applicatin and a web application. This is the web server of the system which contain the backend of the web application and backend of the mobile application.
8+
This server is responsible for
9+
- User Authentication
10+
- User Authrorization
11+
- User registration and login
12+
- Communicate between desktop and the mobile app
13+
- Send intrusion notifications
14+
- Communicate system data with the mobile app
15+
16+
For the database of the application PostgreSQL is used. As well as for prisma ORM is used for managing the databsase. Currently azure postgreSQL database is used as the database server.
17+
18+
And following are the environmental variables that used for the project.
19+
- DATABASE_URL="Url for the remote database"
20+
- TOKEN_SECRET="secret code for create jwt tokens"
21+
- TOKEN_EXPIRE_TIME="time for a jwt token to expire"
22+
- APP_PASSWORD="Google account password for sending the forgot password tokens"
23+
24+
You need to place above environmental variables on a .env files to run the application. As well as to run in the development environment you need to set PORT environmental variable also.
25+
26+
And firebase config file is required to send the notifications to the mobile apps. Change the firebase-conf.json at src/services/. You can take this configuration file from firebase by creating a project.
27+
928
## Technologies used
1029
- Express.js
30+
- Prisma
31+
- PostgreSQL
32+
- SocketIO
33+
- Firebase
34+
35+
## Requirements
36+
- NodeJS installed in the PC
37+
- Locally or remote postgreSQL server
38+
- Firebase project
1139

1240
## Setup
1341
- Clone the Repository
14-
-
42+
- Execute `npm i` to install the dependencies
43+
- Run `npx prisma migrate dev` to deploy the db schema
44+
- Run `node index.js` to start the server
1545

46+
## Development
47+
- Fork the repository to your account
48+
- Clone the repository to your pc
49+
- Execute `npm i` to install the dependencies
50+
- Run `npx prisma migrate dev` to deploy the db schema.
51+
- Execute `node index.js` to start the server (Or otherwise you can user nodemon for this process)
52+
53+
## Testing
54+
- Testing is done using Jest
55+
- Testing is done inside docker containers
56+
- To run tests you need to install docker to your system
57+
- Execute `npm run docker:up` command to initialize the docker container
58+
- Execute `npm test` command to run the tests
59+
- Execute `npm run docker:down` command to stop the docker container
60+
- All the tests are located inside the __tests__ directory
1661

0 commit comments

Comments
 (0)