Simple MERN Project using GraphQL and Prisma.
This project is application using the MERN stack (MongoDB, Express, React and Node.js) with GraphQL and Prisma. It's a simple application to manage users, with login.
The project is containerized using Docker and Docker Compose, for frontend, backend and database.
- JS libraries: Express, Prisma, GraphQL, Apollo Server
- Server environment: Node.js
- Programming Language: TypeScript
- JS libraries: React, Apollo Client
- Programming Language: TypeScript
- Build tool: Vite
- Document database: MongoDB
- Containerization: Docker
- Dev Environment: VSCode with dev containers.
You can use the VSCode dev containers to run the project in a containerized environment.
You need to have installed Docker and VSCode, and the Dev Containers extension.
- Clone this repository
git clone git@github.com:jhordyess/mern-crud-project.git
- Open the project in VSCode
code mern-crud-project
-
Create a
.env
file in the root folder by copying the example from the.env.example
file. -
Open the integrated terminal (Ctrl+Shift+`) and run the following command:
docker compose -f docker-compose.devcontainer.yml up -d
-
Open the command palette (Ctrl+Shift+P) and select the option
Dev Containers: Open folder in Container
. -
Select the folder
backend
and wait for the container to be built. -
Open the integrated terminal (Ctrl+Shift+`) and run the following command:
yarn dev
-
Repeat the steps 5, 6 and 7 for the folder
frontend
. -
Open the browser and visit http://localhost:5173/ and lets code!
To run the project in production mode, remember to create the .env
file in the root folder by copying the example from the .env.example
file.
Then, run the following command:
docker compose -f docker-compose.prod.yml up -d
To stop or remove the containers, use the following commands:
docker compose -f docker-compose.prod.yml down
Take note that this production configuration is just for testing purposes, and maybe need some changes to be used in a real production environment.
- Add seed for DB
- Add more to-do's 😅
If you would like to contribute to the project, open an issue or make a pull request on the repository.
© 2022> Jhordyess. Under the MIT license. See the LICENSE file for more details.
Made with 💪 by Jhordyess