J-TOWN is a casual Japanese learning app that enables intermediate language learners to enjoy their studies more. Users can engage in self-learning practices and compete with others through simple games.
The uniqueness of this app lies in its content. Learning casual Japanese is key to speaking more fluent Japanese, but it's challenging due to the lack of daily opportunities. J-TOWN provides quality materials and engaging simple games, allowing you to focus on becoming a natural Japanese speaker. You can also use this app as a refreshing break during your main studies.
For our tech stack, we use Next.js for the frontend. On the backend, we employ Django Rest Framework and PostgreSQL. We deploy using Railways with a Docker file. For testing, we utilize Jest and Playwright.
Create a folder
mkdir jsensei
Clone backend
git clone https://github.com/JStreet-Sensei/jstreet-backend
Clone frontend
git clone https://github.com/JStreet-Sensei/jstreet-frontend
Example of folder structure:
projects
├───jstreet-backend
│ └───backend
└───jstreet-frontend
└───package.json
Copy .env.example to .env in each repository
Go to the backend directory
cd nihongo-jouzu-backend
Run docker
docker compose build
Start the server
docker compose up
Install my-project with npm
cd jstreet-frontend
npm install
https://j-street.up.railway.app/
/api/socket
Parameter | Type | Description |
---|---|---|
player |
Player |
Required. Player type with his data |
lobby_id |
number |
Required. Id of the lobby |
Create and manage connection with socket for play memo game
GET/POST/PUT/DELETE /api/backend
Parameter | Type | Description |
---|---|---|
path |
string |
Required. Path with query args |
Forward the fetch to backend server
POST /api/signup
Parameter | Type | Description |
---|---|---|
username |
string |
Required. Username of the user |
password |
string |
Required. Password of the user |
Takes two numbers and returns the sum.
To run tests, run the following command
npm run test