Full-stack project management application. Manage your projects through a kanban board inspired design.
Note: This project is hosted on render's generous free tier. You may need to wait 1-2 minutes for the website to start up.
https://project-management-26ne.onrender.com
Here're some of the project's best features:
- Built on the scalable NestJS framework for a well-structured and maintainable TypeScript backend.
- Employs TypeORM as the ORM for efficient and type-safe interaction with a PostgreSQL database.
- Implements robust user authentication and session management using Passport.js.
- Utilizes the blazing-fast Vite.js build system for a streamlined development experience.
- Leverages React Router to enable seamless navigation within the application.
- Constructs a visually appealing and accessible user interface with the Chakra UI component library.
- Employs Redux for predictable and centralized state management.
- Auto generated Swagger API documentation for all API endpoints and schemas.
1. Clone repository
git clone https://github.com/destocot/project-management.git
2. Enter client directory
cd client
3. Install client dependencies (use npm or yarn if prefer red)
pnpm install
4. Enter server directory
cd server
5. Create .env file
touch .enc
6. Fill in PostgreSQL database environment variables (make sure the database you set in DB_NAME already exists)
DB_HOST=FILL_ME DB_PORT=5432 DB_USERNAME=FILL_ME DB_PASSWORD=FILL_ME DB_NAME=FILL_ME
7. Fill in JWT_SECRET environment variable
JWT_SECRET=FILL_ME
8. (Optional) Fill in PORT environment variable
PORT=FILL_ME
9. If PORT environment variable is differnet from 8080 edit in vite.config.ts in client directory
server: {
proxy: {
"/api": {
target: "http://localhost:FILL_ME",
changeOrigin: true
}
}
}
10. (Optional) Seed database in server directory
pnpm db:seed email=FILL_ME passwod=FILL_ME
11. Start vite.js server
pnpm dev
12. Start nest.js server
pnpm start:dev
If you are having issues connecting to the database check for the following things.
- the database under the DB_NAME environment variable exists.
- if you have DB_SYNCHRONIZE set to false or undefined, you will need to either run the seed command (see installation step 10) or run a migration.
Running a migration (pnpm will not work here, use npm to pass migration name)
npm run migration:generate --name=FILL_ME
npm run migration:run