Bu repo MERN Stack Boilerplate projeyi kapsamaktadır.
İstemci: React, ContextAPI, Axios, TailwindCSS, MantineUI
Sunucu: Node, Express, KnexJS, MySQL
Projeyi klonlayın
git clone https://github.com/nizsimsek/mern-boilerplate
Proje dizinine gidin
cd mern-boilerplate
Gerekli paketleri yükleyin
npm install
NOT : Aşağıdaki adımları sırası ile takip ediniz.
Veritabanı ayarlarını yapılandırın
server->src->database->connection.js
dosyasını açınız ve veritabanı verilerinize göre güncelleyiniz.
const connection = require("knex")({
client: "mysql2",
connection: {
host: "127.0.0.1", // local ip
port: 3306, // local mysql port
user: "root", // local mysql user
password: "root", // local mysql password
database: "niz-db", // local mysql database
},
});
module.exports = connection;
aynı şekilde server->src->database->knexfile.js
dosyası için de güncelleme gerçekleştiriniz.
Bu adımı tamamladığınızda veritabanına direkt olarak bağlantı sağlayabileceksiniz.
NOT : Migration ve seed işlemlerini gerçekleştirmek için aşağıdaki yolu izleyiniz
cd server/src/database
knex migrate:latest
knex seed:run
Bu işlemleri yaptıktan sonra veritabanı ve default verileriniz hazır olacaktır.
npm run server
Bu işlem ile birlikte Client ve Sunucu(backend) projeleri build alınacak ve 3000 portunda çalışmaya başlayacaktır.
Tarayıcınızın url kısmına http://localhost:3000/app
yazarak projeyi kullanmaya başlayabilirsiniz.
Default kullanıcı giriş verileri;
Password | Role | |
---|---|---|
super@admin.com |
123456Kc |
super |
student@user.com |
123456Kc |
user |
GET /api/users
GET /api/users/${id}
Parametre | Tip | Açıklama |
---|---|---|
id |
string(uuid) |
Gerekli. Getirilecek kullanıcının id değeri |
POST /api/users
Parametre | Tip | Açıklama |
---|---|---|
name |
string |
Gerekli. Kullanıcının ismi |
surname |
string |
Gerekli. Kullanıcının soyismi |
email |
string |
Gerekli. Kullanıcının sisteme giriş yaparken kullanacağı mail adresi |
password |
string |
Gerekli. Kullanıcının sisteme giriş yaparken kullanacağı şifre |
PUT /api/users/${id}
Parametre | Tip | Açıklama |
---|---|---|
name |
string |
Gerekli. Kullanıcının ismi |
surname |
string |
Gerekli. Kullanıcının soyismi |
email |
string |
Gerekli. Kullanıcının sisteme giriş yaparken kullanacağı mail adresi |
password |
string |
Gerekli. Kullanıcının sisteme giriş yaparken kullanacağı şifre |
DELETE /api/users/${id}
Geliştirmesi yapılacak modül için sırasıyla aşağıdaki adımlar izlenmelidir.
- Model için migration ve seed oluşturulur.
- Model oluşturulur ve BaseModel den extend edilir.(Default crud ve veritabanı işlemleri BaseModelden gelir.
BaseModel BasicORM gibi çalışmaktadır.
) - Service sınıfı oluşturulur ve model için CRUD işlemleri yazılır.
- Controller sınıfı oluşturulur ve alınan istekler ve verileri service sınıfına gönderilir.
- Router sınıfı oluşturulur ve gelen istekler için controller sınıfına yönlendirilir.
- Yeni oluşturulan router apiRouter içerisinde import edilir. (server/src/routes/apiRouter.js) daha sonrasında yeni oluşturulan router için bir path belirlenir.