A project developed as part of an assignment from the Telecommunications High School – Sofia, with the support of the Ministry of Education and Science.
📌 Description
An information system for managing volunteer initiatives, aiming to streamline coordination between administrators, organizers, and volunteers. The system provides features for creating and managing events, assigning tasks, tracking progress, and generating reports.
The project is built using the following technologies:
- Next.js – React framework for server-side rendering and routing
- Tailwind CSS – Utility-first CSS framework for rapid UI development
- Prisma ORM – ORM for database interaction
- TypeScript – Typed JavaScript for safer, more predictable code
- shadcn/ui – Modern UI component library based on Radix UI
- NextAuth.js – Easy-to-configure authentication library
- Node.js v18 or newer
- PostgreSQL database
- Git
git clone https://github.com/your-username/volunteer-system.git
cd volunteer-systemnpm installCreate a .env file in the root directory and add the following line:
DATABASE_URL=postgresql://user:password@localhost:5432/dbname
NEXTAUTH_SECRET='secret'
NEXT_PUBLIC_IMGUR_CLIENT_ID=your_idReplace
user,password,localhost, anddbnamewith your local database credentials. Replaceyour_idwith your client id from imgur.
npx prisma migrate dev
npx prisma db seed- Registration and login via NextAuth
- User roles: Administrator, Organizer, Volunteer
- Each user has a personal profile with information and role
- Create and edit events
- Categorize events (environmental, social, cultural, etc.)
- Volunteers can register for events
- Create and assign tasks to volunteers
- Track completion status
- Generate statistics and visualizations (charts, reports)
# Start dev server
npm run dev
# Run migrations
npx prisma migrate dev
# Seed the database
npx prisma db seed- Client: Responsive web interface
- Server: Next.js API routes using Prisma to access the database
| Role | Access |
|---|---|
| Administrator | Full access to all features |
| Organizer | Create events, manage tasks |
| Volunteer | Register for events, view assigned tasks |
The project includes:
- Code comments for core functionality
- Documented API routes and models
- Seed data for faster project setup
Use these predefined user accounts to experience the app from various user roles and perspectives.
{
username: 'user1',
email: 'email1@gmail.com',
password: '1111',
role: Role.USER,
},
{
username: 'user2',
email: 'email2@gmail.com',
password: '2222',
role: Role.INITIATOR,
},
{
username: 'user3',
email: 'email3@gmail.com',
password: '3333',
role: Role.ADMIN,
},
This project was developed by
Boris Hubavenski, Vladislav Stoqnov, Daniel Chernev, Velizar Georgiev
from the Telecommunications High School – Sofia, as part of an educational initiative to promote digital skills.
latest